我有一个numpy数组,我希望每个值和0之间的最大值。
array([ 7.1788812 , 7.16842748, 7.1601692 , 7.16941517,
-30.89416777, -30.89403639, -30.89971925, -30.89529326,
-31.59193447, -31.59202963])
通缉结果:
array([ 7.1788812 , 7.16842748, 7.1601692 , 7.16941517,0,0,0,0,0,0])
有不同的方法来获得结果,但我想要一些短而非常pythonic
答案 0 :(得分:6)
np.maximum
计算数组元素的元素最大值,numpy有一些广播规则(参见here);所以你可以试试这个:
np.maximum(x, 0)
答案 1 :(得分:2)
您还可以使用numpy.clip
:
import numpy as np
a = np.array([ 7.1788812 , 7.16842748, 7.1601692 , 7.16941517,
-30.89416777, -30.89403639, -30.89971925, -30.89529326,
-31.59193447, -31.59202963])
np.clip(a, 0, np.inf)
答案 2 :(得分:2)
np.where(a>= 0, a, 0)
numpy.where
似乎就像你要找的那样。如果条件为假,则给出0。
答案 3 :(得分:1)
newArray = array([max(x,0) for x in OriginalArray])