【发布时间】:2014-01-02 01:32:40
【问题描述】:
如果我有一个非常大的 numpy 数组,其中包含一个无用的列,我怎么能在不创建原始数组的副本的情况下删除它?
np.delete(my_np_array, 0, 1)
上面的代码将返回没有第零列的数组副本。但相反,我想简单地从my_np_array 中删除该列,因为我不需要它。对于非常大的数据集,内存管理变得很重要,复制可能不是一种选择。
【问题讨论】:
-
不幸的是,在 numpy 中防止复制是一件棘手的事情。如果它是第一列或最后一列,您可能可以使用简单的数组切片。这可能不会现在复制数组,但是如果你继续用它做更复杂的事情,不能保证你以后不会得到副本(或临时数组)代码(AFAIK)。
-
@Krishan 是否可以将它以不同的方式加载到 python 中?如果数组是从数据中生成的,我们可以做一些事情来事先杀死列吗?如果没有,我们可以用其他方式预处理数组吗,比如
MATLAB?