我有两个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除以错误。
我有两个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除以错误。
我通过以下方式解释您的任务:在结果仍然为正的情况下,找到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