我正在尝试在2d numpy数组的每一行中找到最小的非零值,但是还没有找到一个优雅的解决方案。我看过一些其他职位,但没有地址完全相同的问题例如在二维数组最小值或最小/最大不包括零,但一维数组。
例如对于给定的数组:
x = np.array([[3., 2., 0., 1., 6.], [8., 4., 5., 0., 6.], [0., 7., 2., 5., 0.]])
答案将是:
[1., 4., 2.]
遮罩阵列正是为这些目的而设计的。您可以利用数组中的零掩码(或您想要的任何其他种类的掩码),现在可以对掩码数组的常规数组执行几乎所有的工作:
import numpy.ma as ma
mx = ma.masked_array(x, mask=x==0)
mx.min(1)
输出:
[1.0 4.0 2.0]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句