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

7
与此类似,我想知道如何从numpy数组中的每个数组中删除特定元素。我的数据以下面的X形式给出。我认为这应该可以运行:
X = [[x1 x2 ... xn] [x1 x2 ... xn] ... [x1 x2 ... xn]]
X.shape
(n,|x|)

Y=numpy.delete(X[:],1)

我认为现在Y应该是:
Y = [[x1 x3 ... xn] [x1 x3 ... xn] ... [x1 x3 ... xn]]

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

index = [ 1 3 7]
Y=numpy.delete(X[:],index)

如果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])
1个回答

9

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

Y = np.delete(X, 1, axis=1)

太好了!为了确保我理解轴的概念。如果我的例子是一个数组中的数组中的数组,那么我应该声明axis=2吗? - leonard
沿着行向下(轴0),沿着列水平移动(轴1)。 - PlagTag
numpy 中,我们谈论多维数组,即 2D 或 3D 数组。它们可以转换为列表的列表(的列表)。但是,“数组的数组”是不同的,只有当内部数组的大小不同时才会出现(即不规则数组)。 - hpaulj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接