簡體   English   中英

根據條件分配numpy數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM