我有一个名为AllDays的巨型数组存储日期时间。
我生成了一个数组,用于存储每天的星期几信息。
我试图仅从原始日期时间数组AllDays中提取周末。
所以,从星期几开始,我正在尝试以下方法:
DayOfWeek = np.asarray([x.weekday() for x in AllDays])
#AllDays stores datetime objects
ind = np.where(DayOfWeek == 0 or DayOfWeek == 6) #gives Error
我的目标是按照以下方式使用它来仅提取周末:
weekends = AllDays[ind]
第
行错误ind = np.where(DayOfWeek == 0 or DayOfWeek == 6)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
答案 0 :(得分:3)
这里的问题是“或”,它没有为numpy布尔数组定义。你可以改为使用总和:
np.where((DayOfWeek == 0) + (DayOfWeek == 6))
编辑:您也可以使用按位或运算符:
np.where((DayOfWeek == 0) | (DayOfWeek == 6))
它给出了相同的结果,但是当我们使用布尔值时更好一些......