2024-04-26 13:02:09 发布
网友
我有两个np.array x和y,希望找到y[I]大于0的比率x[I]/y[I]的最小值,即:
x = np.array([1,2,3,4,5]) y = np.array([-1,0,1,2,3]) minimumratio(x,y)
应该返回5/3
仅使用min(x/y)将产生-1,并且可能会遇到除以0的错误
我以以下方式贯穿您的任务:在结果仍然为正的条件下,找到x/y的最小值
x/y
因此,我会屏蔽数组,去掉所有我们不想考虑的情况,例如一个数字是否定的,或者^ {CD2>}的元素是零。p>
您可以通过将数组中的位置设置为np.nan来实现这一点:
np.nan
x = np.array([1,2,3,4,5], dtype=np.float) y = np.array([-1,0,1,2,3], dtype=np.float) y_cleared = np.copy(y) y_cleared[y == 0] = np.nan # get rid of zeros y_cleared[y < 0] = np.nan # get rid of negative values y_cleared[x < 0] = np.nan # get rid of negative values
y_cleared >>> array([nan, nan, 1., 2., 3.])
还有一些特殊的numpy方法可以处理数组并忽略np.nan,如:
np.nanmin(x/y_cleared) >>> 1.6666666666666667
我以以下方式贯穿您的任务:在结果仍然为正的条件下,找到
x/y
的最小值因此,我会屏蔽数组,去掉所有我们不想考虑的情况,例如一个数字是否定的,或者^ {CD2>}的元素是零。p>
您可以通过将数组中的位置设置为
np.nan
来实现这一点:还有一些特殊的numpy方法可以处理数组并忽略
np.nan
,如:相关问题 更多 >
编程相关推荐