在说numpy库数组的计算之前先来看一下numpy数组形状的知识:
- 创建一个数组之后,可以用shape来查看其形状,返回一个元组
例如:a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.shape) # 打印出 (2,3)
其它的一维二维或三维数组也是同理,打印出对应形状的元组
- 修改数组的形状可以用 reshape() 函数,参数传入一个元组
例如:b = a.reshape((3, 2))
print(b.shape) # 打印出(3, 2)
注意点:修改前后的数组中总元素要一致,具体情况还需具体分析
- flatten() 函数可以直接把数组展开,比如将数组a转换为一维
例如:c = a.flatten()
此时a将变为一个一维数组
数组的计算:
-
数组和数的计算
数组和数的计算一般都遵从广播原则,也就是在做加减乘除的时候会和数组里面的每一个都进行计算,最后返回一个数组
-
数组和数组的计算
相同维度的数组的计算一般就是对应的进行计算,很好理解:
不同维度的数组进行计算,就要分析其能不能成功计算了:
像这种广播原则理解起来有时候还是比较难以理解,有时候我们可以发挥一下空间想象能力,想象一下能不能成功计算,像一维数组和二维数组之间应该都是可以一眼看得出来的,主要是多维数组的理解上。
- 像shape为(3, 3, 3)的数组和(3, 2) 的数组就是不能计算的;
- 而shape为(3, 3, 2)的数组和(3, 2) 的数组就是可以计算的;
- 并且shape为(3, 3, 2)的数组和(3, 3) 的数组也是可以计算的;