如何从NumPy数组中删除所有零元素?

numpy.array想创建一个箱形图,其等级为1

。但是,我想排除数组中所有等于零的值。目前,我通过循环数组来解决此问题,如果不等于零,则将值复制到新数组中。但是,由于该数组包含86 000

000个值,并且我必须多次执行此操作,因此需要大量的耐心。

有没有更聪明的方法可以做到这一点?

回答:

在这种情况下,您要使用掩码数组,它可以保持数组的形状,并且可以被所有numpy和matplotlib函数自动识别。

X = np.random.randn(1e3, 5)

X[np.abs(X)< .1]= 0 # some zeros

X = np.ma.masked_equal(X,0)

plt.boxplot(X) #masked values are not plotted

#other functionalities of masked arrays

X.compressed() # get normal array with masked values removed

X.mask # get a boolean array of the mask

X.mean() # it automatically discards masked values

以上是 如何从NumPy数组中删除所有零元素? 的全部内容, 来源链接: utcz.com/qa/422807.html

回到顶部