Numpy的索引
视图特性
import numpy as np
arr=np.arange(1,11)
a=arr[3:8]
b=a[1:3]
b[1]=100
print(arr)
跟列表最重要的区别在于,数组切片是原始数组的视图。这意味着数据不会被复制,视图上的任何修改都会直接反映到源数组上,这也意味着列表的索引不会改变原列表
import numpy as np
arr=np.arange(1,26).reshape(5,5)
print(arr)
print("arr[1,3]=",arr[1,3])
print("arr[1][3]=",arr[1][3])
print("arr[:3][:1]=",arr[:3][:1])
print("arr[:3][:2,2:4]=",arr[:3][:2,2:4])
print("arr[:3,:3]=",arr[:3,:3])
numpy数组后第一个方括号为对原数组的第一次切片,第二个方括号为对第一个切片后的数组切片
特例(方括号内为元组)
import numpy as np
arr=np.arange(1,26).reshape(5,5)
print("arr[(1,2),(3,4)]=",arr[(1,2),(3,4)])
Numpy的轴
import numpy as np
arr=np.arange(1,28)
arr=arr.reshape(3,3,3)
print(arr[:,:2,:1]) #第一个为表,第二个为行,第三个为列
在二维中,axis=0代表列,axis=1代表行
在三维中,axis=0代表表,axis=1代表列,axis=2代表行
两图来源自(https://deepage.net/features/numpy-axis.html)