从小于1的numpy数组中删除元素

2024-06-11 11:50:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图绘制大数据(5000万个值),但是我得到了一个MemoryError。现在我正在尝试清除数据集中的冗余值。在我的例子中,这些都是1以下和-1以上的值。要记住的一点是,情节应该和原著一样,但没有噪音。有没有比使用loopslist comprehensions更好的方法呢?在

原图:

enter image description here

编辑:

谢谢你的回复。如果我使用建议的方法:

daty = daty[(-1 > daty) | (daty > 1)]

其结果是:

enter image description here


Tags: 数据方法编辑绘制建议list例子情节
3条回答

Numpy允许您将掩码应用于数组的任何单个维度,从而生成未屏蔽行的子集(在您的例子中是数据点)。在

data = np.array([1.5, 0.2, -5, -0.5])
mask = np.abs(data) > 1
data = data[mask]
print(data) # output: [1.5, -5]

注意-5现在位于过滤器后面的位置1。在

Numpy可以基于布尔数组进行寻址,因此如果您想将不需要的值设置为0,可以执行如下操作:

badIndices = (myArray > 1) | (myArray < -1)
myArray[badIndices]=0

{cd1>你的数组名为^:

clipped_data = data[(-1 > data) | (data > 1)]

相关问题 更多 >