NumPy
在学习深度学习时,NumPy的数组类提供了很多关于操作数组和矩阵的便捷方法。
2019/5/30
1.1 导入NumPy
NumPy并不存在于标准版Python
中,因此,首先需要导入NumPy库
1 | >>> import numpy as np |
1.2 生成NumPy数组
使用np.array()
方法。np.array()
接受Python的列表作为参数,生成NumPy数组(num.ndarray
)。
1 | >>> x=np.array([1.0,2.0,3.0]) |
1.3 NumPy的算术运算
1 | >>> x = np.array([1.0, 2.0, 3.0]) |
需要注意,数组x和数组y的元素个数相同,如果元素个数不同,程序会报错。
NumPy数组不仅可以进行对应元素的运算,也可以和单一的数值(标量)进行运算,这个功能叫广播。
1 | >>> x = np.array([1.0, 2.0, 3.0]) |
NumPy的N维数组
NumPy可以生成多维数组
1 | >>> A = np.array([[1, 2], [3, 4]]) |
1 | >>> B = np.array([[3, 0],[0, 6]]) |
1 | #广播 |
访问元素
元素的索引从0开始。对各个元素的访问如下:
1 | >>> X = np.array([[51, 55], [14, 19], [0, 4]]) |
也可以用for语句访问各个元素
1 | >>> for row in X: |
除了前面介绍的索引操作,NumPy还可以使用数组访问各个元素
1 | >>> X = X.flatten() # 将X转换为一维数组 |
运用这个标记法,可以获取满足一定条件的元素。例如,要从 X中抽出大于15的元素,可以写成如下形式。
1 | >>> X > 15 |
对NumPy数组使用不等号运算符等(上例中是 X > 15),结果会得到一个布尔型的数组。上例中就是使用这个布尔型数组取出了数组的各个元素(取出 True对应的元素)。