2013-12-21 139 views
2

我有一個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]) 

有不同的方式來獲得的結果,但我想的短的東西和非常Python的

回答

5

np.maximum計算逐元素最大陣列元件,和numpy的具有一定broadca刺痛規則(見here);所以你可以試試這個:

np.maximum(x, 0) 
1
newArray = array([max(x,0) for x in OriginalArray]) 
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
np.where(a>= 0, a, 0) 

numpy.where好像你在找什麼。如果條件爲假,則爲0。