我正在尝试绘制大数据(5000万个值),但得到MemoryError
。现在,我试图从冗余值中清除数据集。就我而言,这些都是低于1
和高于-1
的值。要记住的一件事是,该图应该看起来与原始图相同,但没有杂音。有没有比使用loops
或list comprehensions
更好的方法了?
原始图:
编辑:
感谢您的答复。如果我使用建议的方法:
daty = daty[(-1 > daty) | (daty > 1)]
结果如下:
答案 0 :(得分:2)
如果您的数组名为data
:
clipped_data = data[(-1 > data) | (data > 1)]
答案 1 :(得分:0)
Numpy可以基于布尔数组进行寻址,因此,如果要将不需要的值设置为0,则可以执行以下操作:
badIndices = (myArray > 1) | (myArray < -1)
myArray[badIndices]=0
答案 2 :(得分:0)
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。