阅读了本书第4章,将其中需要注意的点和重要的知识点简单整理了下。
- 大小相等的数组之间的任何算术运算都会将运算应用到元素级。
- 数组与标量的算术运算会将标量值传播到各个元素。
- 大小相同的数组之间的比较会生成布尔值数组。
- 不同大小的数组之间的运算叫做广播( broadcasting),当你将一个标量值赋值给一个切片时( 如
arr[5:8]=12
),该值会自动传播( 也就说后面将会讲到的“广播”)到整个选区。 - 跟列表最重要的区别在于,数组切片是原始数组的视图。 这意味着数据不会被复制,视图上的任何修改都会直接反映到源数组上。
- 如果你想要得到的是ndarray切片的一份副本而非视图, 就需要明确地进行复制操作, 例如
arr[5:8].copy()
。 - 注意,三维数组切片时,
arr3d[:][1]
与arr3d[:,1]
的结果不一致切勿混淆。
In [50]: arr3d = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
In [51]: arr3d[0]
Out[51]:
array([[1, 2, 3],
[4, 5,</