python使用多个条件与numpy在哪里

时间:2016-06-03 13:38:45

标签: python datetime numpy

我有一个名为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()

1 个答案:

答案 0 :(得分:3)

这里的问题是“或”,它没有为numpy布尔数组定义。你可以改为使用总和:

np.where((DayOfWeek == 0) + (DayOfWeek == 6))

编辑:您也可以使用按位或运算符:

np.where((DayOfWeek == 0) | (DayOfWeek == 6))

它给出了相同的结果,但是当我们使用布尔值时更好一些......