在某些条件下,以两个数组之间的(逐项)比率查找最大值或最小值

我有两个np.x和y数组,希望找到x [i] / y [i]的最小值,其中y [i]大于0,即:

x = np.array([1,2,3,4,5])
y = np.array([-1,1,3])
minimumratio(x,y)

应该返回5/3。

仅使用min(x / y)会产生-1,并且可能会被0除以错误。

yjyyjywww 回答:在某些条件下,以两个数组之间的(逐项)比率查找最大值或最小值

我通过以下方式解释您的任务:在结果仍然为正的情况下,找到xAxis的最小值。

因此,我将对数组进行遮罩以消除所有我们不想考虑的情况,例如,其中一个为负数或x/y的元素为零。

您可以通过将数组中的这些位置设置为y来实现:

np.nan
x = np.array([1,2,3,4,5],dtype=np.float)
y = np.array([-1,1,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

然后,有一些特殊的numpy方法可以处理数组,并像这样忽略y_cleared >>> array([nan,nan,1.,2.,3.])

np.nan
本文链接:https://www.f2er.com/3032480.html

大家都在问