python-3.x 使用列表理解和np.minimum过滤其中一个列表

46qrfjad  于 2023-06-25  发布在  Python
关注(0)|答案(1)|浏览(124)
  • x = [正数列表]
  • y = [正数和负数列表]

我想使用x = np.minimum(x,y),条件是如果y中的一个数字是负数,那么它假定值为零,这样np.minimum中的比较返回0而不是负数。我知道我可以在循环中做到这一点,但我可以在y[...]内的一行内做到这一点吗?表达式…]。
我试过很多方法,但我只是不知道如何写,因为我做的每一件事都得到语法错误。

jei2mxaa

jei2mxaa1#

我将举一个最小可重复的例子:

import numpy as np
x = [1,2,3,5,6,8]
y = [-3,4,5,1,9,-8]

正如@Onyambu评论的那样,你必须调用np.minimum两次:
如果你只做np.minimum一次,那么当它们是最小值时,你会得到负数:

np.minimum(x, y)

#array([-3,  2,  3,  1,  6, -8])

x = np.minimum(x, np.maximum(y,0))
print(x)

#array([0, 2, 3, 1, 6, 0])

相关问题