如何删除numpy数组中所有numpy数组中的第n个元素?

leo*_*ard 6 python arrays indexing numpy multidimensional-array

类似,我很好奇如何从 numpy 数组中的每个 numpy 数组中删除特定元素。我的数据以下面的 X 形式给出。我认为这应该有效:

X = [[x1 x2 ... xn] [x1 x2 ... xn] ... [x1 x2 ... xn]]
X.shape
(n,|x|)

Y=numpy.delete(X[:],1)
Run Code Online (Sandbox Code Playgroud)

我认为 Y 现在应该是:

Y = [[x1 x3 ... xn] [x1 x3 ... xn] ... [x1 x3 ... xn]]
Run Code Online (Sandbox Code Playgroud)

其中 Y.shape 应该等于 (n-1,|y|=|x|),但它不是。我不明白什么?我的目的是能够删除 X 中每个数组中的所有 x2(低相关变量),以便发送到决策树回归器。如果我能做到这一点就更好了:

index = [ 1 3 7]
Y=numpy.delete(X[:],index)
Run Code Online (Sandbox Code Playgroud)

如果 X 不是“嵌套” numpy 数组,则该方法有效。参考链接中的回复:

array([1, 2, 3, 4, 5, 6, 7, 8, 9])

index
[2, 3, 6]

new_a = np.delete(a, index)

new_a
array([1, 2, 5, 6, 8, 9])
Run Code Online (Sandbox Code Playgroud)

Dan*_*iel 8

您需要np.delete沿轴应用。请参考文档中的第三个示例。

Y = np.delete(X, 1, axis=1)
Run Code Online (Sandbox Code Playgroud)