平时常用的python list中,可以通过下列操作读取列表中对应索引位置的值
A = [1,2,3,4]
print(A[3]) # 打印:4
N但最近看到numpy中有一种写法为:假设A为一个多维数组,B为一个一维数组(这里分两种情况,N * 1或 1 * N),使用 A[B] ,可以直接根据B的索引,在A中直接读取数据,生成一个新的数组。
import numpy as np
a = np.array([[1],[3]]) # N * 1
b = np.array([[0,1],[1,2],[2,3],[3,4],[4,5]])
print(b[a])
print(b[a].shape)
'''
打印:
[
[[1, 2]],
[[3, 4]]
]
shape:(2, 1, 2)
'''
c = np.array([1,3]) # # 1 * N
d = np.array([[0,1],[1,2],[2,3],[3,4],[4,5]])
print(d[c])
print(d[c].shape)
'''
打印:
[
[1, 2],
[3, 4]
]
shape:(2, 2)
'''