【发布时间】:2019-10-27 23:47:21
【问题描述】:
我正在使用一个 ndarray 来切片另一个 ndarray。
通常我使用arr[ind_arr]。 numpy 似乎不喜欢这样并提出了FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated use arr[tuple(seq)] instead of arr[seq]。
arr[tuple(seq)] 和 arr[seq] 有什么区别?
StackOverflow 上的其他问题似乎在scipy 和pandas 中遇到了这个错误,大多数人认为错误出现在这些包的特定版本中。我遇到了纯粹在 numpy 中运行的警告。
示例帖子:
FutureWarning with distplot in seaborn
MWE 重现警告:
import numpy as np
# generate a random 2d array
A = np.random.randint(20, size=(7,7))
print(A, '\n')
# define indices
ind_i = np.array([1, 2, 3]) # along i
ind_j = np.array([5, 6]) # along j
# generate index array using meshgrid
ind_ij = np.meshgrid(ind_i, ind_j, indexing='ij')
B = A[ind_ij]
print(B, '\n')
C = A[tuple(ind_ij)]
print(C, '\n')
# note: both produce the same result
【问题讨论】:
标签: numpy numpy-ndarray