有一种很好的方法可以找到here中描述的除零之外的数组的非零最小值/最大值:
<div id="parent" contenteditable=true style="border: black 2px solid; height:200px">
<div class = "root">hello</div>
<div class = "root">*******</div>
<div class = "root">world</div>
</div>
然而,只要select c.*
from categories c
left join users_categories uc on c.id = uc.category_id
left join users u on u.id = uc.user_id and u.country_id = $country_id
where
u.id is null
group by
c.id
是2维或更多维数组并且需要最小/最大轴,这就不会起作用。有什么简单的解决方案吗?
答案 0 :(得分:2)
这是非 - 所谓的方法。可以通过将0值设置为a.min()
/ a.max()
作为单独的步骤来进行矢量化。
import numpy as np
a = np.array([[1, 2, 0],
[3, 1, 9],
[0, 3, 4]])
minval = np.min(np.where(a==0, a.max(), a), axis=0)
# array([ 1., 1., 4.])
maxval = np.max(np.where(a==0, a.min(), a), axis=0)
# array([ 3., 3., 9.])
答案 1 :(得分:0)
屏蔽数组是专门为这些目的而设计的。您可以利用数组中的遮罩零(或您想要的任何其他种类的遮罩),现在就对遮罩数组中的常规数组执行几乎所有的工作:
import numpy.ma as ma
mx = ma.masked_array(x, mask=x==0)
mx.min(1)
示例输入:
x = np.array([[3., 2., 0., 1., 6.], [8., 4., 5., 0., 6.], [0., 7., 2., 5., 0.]])
输出:
[1.0 4.0 2.0]