ndarry:多维数组对象
数据切片是原始数组的视图,数据不会被复制,试图上的任何修改都会直接反映到源数据上:
a = np.arange(10)
a
Out[11]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
b = a[5:8]
b
Out[13]: array([5, 6, 7])
b[2] = 1
b
Out[15]: array([5, 6, 1])
a
Out[16]: array([0, 1, 2, 3, 4, 5, 6, 1, 8, 9])
b[:] = 23
a
Out[18]: array([ 0, 1, 2, 3, 4, 23, 23, 23, 8, 9])
如果想得到切片的副本,需要显式的进行复制
c = a[2:4].copy()
多维数据读取情况
arr1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
arr1[1]
Out[30]: array([4, 5, 6])
arr1[0,2]
Out[31]: 3
arr1[0][2]
Out[32]: 3
多维数组情况
arr2 = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
arr2
Out[34]:
array([[[ 1, 2, 3],
[ 4, 5, 6]],
[[ 7, 8, 9],
[10, 11, 12]]])
arr2[0]
Out[35]:
array([[1, 2, 3],
[4, 5, 6]])
arr2.shape
Out[39]: (2, 2, 3)