我想將列表(或numpy數組)中的值有效地轉換爲numpy數組:一個負值應該在新數組中變爲0,並且a新陣列中的正值a 1。使用numpy.clip將正值和負值轉換爲位串
例如,
>> import numpy as np
>> np.clip([1,2,3,-1,-2], a_min=0, a_max=1)
array([1, 1, 1, 0, 0])
但是,如果我有花車在列表中,這種方法使他們的是:
>> np.clip([1,0.45,3,-1,-2], a_min=0, a_max=1)
array([ 1. , 0.45, 1. , 0. , 0. ])
是否有規避這種行爲的一個好辦法嗎?一種方法是將數值四捨五入。但我希望所有正數都爲1的分配。如果我使用np.around()
,則會使0.45-0> 0。
好的,謝謝! StackOverflow讓我可以接受這個答案! – Sebastian 2014-09-23 17:21:51
請注意,如果性能是一個問題,我得到'(a> 0).astype('i1')'比'np.where(a> 0,1,0)'快得多。數組越大,差異越大。對於100長陣列,我得到的速度要快2倍,對於10k長陣列,速度要快10倍。 – 2014-09-23 17:24:33
感謝@RogerFan – Sebastian 2014-09-23 18:36:38