Numpy的索引

视图特性

  1. import numpy as np
  2. arr=np.arange(1,11)
  3. a=arr[3:8]
  4. b=a[1:3]
  5. b[1]=100
  6. print(arr)

image.png
跟列表最重要的区别在于,数组切片是原始数组的视图。这意味着数据不会被复制,视图上的任何修改都会直接反映到源数组上,这也意味着列表的索引不会改变原列表

  1. import numpy as np
  2. arr=np.arange(1,26).reshape(5,5)
  3. print(arr)
  4. print("arr[1,3]=",arr[1,3])
  5. print("arr[1][3]=",arr[1][3])
  6. print("arr[:3][:1]=",arr[:3][:1])
  7. print("arr[:3][:2,2:4]=",arr[:3][:2,2:4])
  8. print("arr[:3,:3]=",arr[:3,:3])

image.png
numpy数组后第一个方括号为对原数组的第一次切片,第二个方括号为对第一个切片后的数组切片

特例(方括号内为元组)

  1. import numpy as np
  2. arr=np.arange(1,26).reshape(5,5)
  3. print("arr[(1,2),(3,4)]=",arr[(1,2),(3,4)])

image.png
像坐标一样选取

Numpy的轴

  1. import numpy as np
  2. arr=np.arange(1,28)
  3. arr=arr.reshape(3,3,3)
  4. print(arr[:,:2,:1]) #第一个为表,第二个为行,第三个为列

image.png
在二维中,axis=0代表列,axis=1代表行
image.png
在三维中,axis=0代表表,axis=1代表列,axis=2代表行
image.png
两图来源自(https://deepage.net/features/numpy-axis.html