【发布时间】:2020-06-05 03:04:49
【问题描述】:
为什么 b1 b2 给出不同的结果,但 b0 ,b1,b3 给出相同的结果。并获得一个
“FutureWarning:不推荐使用非元组序列进行多维索引;使用arr[tuple(seq)] 而不是arr[seq]。将来这将被解释为数组索引arr[np.array(seq)],这将导致错误或结果不同。”
a = np.array([[6, 7], [8, 9]])
print(a.shape)
print(a)
print()
b0 = a[[0, 0]]
print('b0')
print(b0.shape)
print(b0)
print()
b1 = a[[[0, 0]]]
print('b1')
print(b1.shape)
print(b1)
print()
b2 = a[np.array([[0, 0]])]
print('b2')
print(b2.shape)
print(b2)
print()
b3= a[np.array([0, 0])]
print('b3')
print(b3.shape)
print(b3)
(2, 2) [[6 7] [8 9]]
b0 (2, 2) [[6 7] [6 7]]
b1 (2, 2) [[6 7] [6 7]]
b2 (1, 2, 2) [[[6 7] [6 7]]]
b3 (2, 2) [[6 7] [6 7]]
【问题讨论】:
标签: numpy numpy-ndarray array-broadcasting numpy-slicing