【问题标题】:How to remove nth element in all numpy arrays in a numpy array?如何删除numpy数组中所有numpy数组中的第n个元素?
【发布时间】:2014-11-24 12:21:41
【问题描述】:

类似于this,我很好奇如何从 numpy 数组中的每个 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])

【问题讨论】:

    标签: python arrays numpy multidimensional-array indexing


    【解决方案1】:

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

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

    【讨论】:

    • 甜蜜!以确保我理解轴的概念。如果我的例子是数组中的数组,那么我会声明axis=2吗?
    • 向下跨行(轴 0),水平跨列(轴 1)。
    • numpy 我们谈论多维数组,即2D 或3D 数组。它们可以转换为列表列表(列表)。但是“数组的数组”是不同的,只有当内部数组的大小不同(即参差不齐的数组)时才会出现。
    猜你喜欢
    • 2023-03-10
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 2019-11-28
    • 2018-07-11
    相关资源
    最近更新 更多