从阵列中删除某些元素 numpy 使用条件检查
我想删除来自墓地的一些记录 numpy 大约一百万条记录。
此代码将成为它,但需要很多时间:
我可以用不同的方式吗?
此代码将成为它,但需要很多时间:
a = np.array/[1,45,23,23,1234,3432,-1232,-34,233]/
for element in a:
if element-100/ or element100:
some delete command.
我可以用不同的方式吗?
没有找到相关结果
已邀请:
3 个回复
三叔
赞同来自:
, 最短的方法是使用逻辑分度。
a = a[/a >= -100/ & /a <= 100/]
它根本不是 "deleting" 参赛作品,而是创建数组的副本负不需要的值并分配其变量,以前分配给旧数组。 之后,旧阵列没有剩余的链接,并将到垃圾,即它的内存被释放。
值得注意的是,此方法不使用永久性内存,因为我们制作阵列的副本,它使用阵列大小的内存线性。 如果您的阵列如此巨大,这可能是糟糕的,这达到了机器上的内存限制。 实际段落过程和阵列中的每个元素的过程 "到位", 也就是说,使用永久性存储器,它将是一个完全不同的操作,因为阵列中的元素必须必须更改位置并改变存储器块的大小。 我不确定你可以用数组做吗?
, 但是,你可以做的一件事来避免复制, - 这使用了蒙面阵列
:
伪装阵列上的所有操作都会充当我们的项目 "deleted" 不存在,但事实上我们不是 "delete", 它们仍然存在于内存中,只有一个跳过现在与数组关联的项目的条目,我们永远不需要在内存中制作数组的副本。 此外,如果我们想返回我们的远程值,我们只需删除如下所示:
郭文康
赞同来自:
http://docs.scipy.org/doc/nump ... rrays
逆转条件。
风见雨下
赞同来自: