如何从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