[英]Assigning an array value into a multidimensional numpy array based on an equality comparison condition?
[英]Assigning numpy array based on condition
編寫這個numpy python代碼的更好方法是什么?
age[age < 20.0] = 0.0
age[age > 0.0] = 1.0
mature = age
這里,成熟度包含1.0,所有年齡> 20.0的值,否則為0.0
mature = age = (age > 20.0).astype(float)
age > 20.0
是一個布爾數組。 astype(float)
將數組轉換為float dtype,它將True更改為1.0,將False更改為0.0。 請注意,這也會將NaN轉換為0。
要像原始代碼一樣保留NaN,可以使用np.clip
:
mature = age = np.clip(age-20, 0, 1)
例如,
In [90]: age = np.array([np.nan, 30, 20, 10])
In [91]: (age > 20.0).astype(float)
Out[91]: array([ 0., 1., 0., 0.])
In [92]: np.clip(age-20, 0, 1)
Out[92]: array([ nan, 1., 0., 0.])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.