可以使用面膜,但要注意,對於類型的拒絕鑄造你應該創建數據類型float第一陣列。 :
In [15]: hourOfDay = np.mod(range(0, 100), 24, dtype=np.float)
In [16]: mask = np.logical_or(hourOfDay <= 7, hourOfDay >= 22)
In [17]: hourOfDay[mask] = 0.4
In [19]: hourOfDay[~mask] = 0.2
In [20]: hourOfDay
Out[20]:
array([ 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.2, 0.2, 0.2,
0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.2,
0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
0.2, 0.2, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
0.4, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
0.2, 0.2, 0.2, 0.2, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
0.4, 0.4, 0.4, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2,
0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.4, 0.4, 0.4, 0.4, 0.4,
0.4])
近乎完美; 'for'在列表comp的末尾,條件先走:'newList = [0.4如果hour <= 7或hour> = 22 else 0.2 for hourOfDay]' –
Thanks @AndrasDeak!慚愧我沒有自己去那裏;但至少在下次我忘記python是如何工作的時候,我會在這裏找到它。 – kabdulla