讓我們看下一個可重現的例子:
我有一個 numpy 陣列,其中包含每小時頻率的一系列
datetime.datetime元素,從該陣列中,我想創建一個串列
datesVect,我希望datetimes在 2 月和 4 月之間為 True,否則為 False。
按照這個問題的驗證答案和這篇文章的串列理解條件的用法的解釋,我嘗試用下面的代碼來做:
import numpy as np
import datetime
#Setting the startdate and creating the data range array:
startDate = datetime.datetime(2023,1,1)
dateHour = np.array([startDate datetime.timedelta(0,3600*n) for n in range(8760)])
#Creating the desired list
datesVect = [True if j.month < 5 else True if j.month > 1 else False for j in dateHour]
我沒有得到想要的結果,而是得到一個充滿True值的串列:
In [211]: all(datesVect)
Out[211]: True
任何人都知道為什么我沒有得到想要的結果?
uj5u.com熱心網友回復:
我建議只使用and運算子。您當前的代碼的功能類似于or運算子,因此為什么您會得到一個包含所有 True 值的陣列。要介于 2 月和 4 月之間,月份必須大于 1 且小于 5。
datesVect = [True if (j.month < 5 and j.month > 1) else False for j in dateHour]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/521370.html
