很抱歉,这很简单,但是我在numpy
文档中看不到任何内容。我有一个datetime64
,我想知道星期几。
与python datetime
不同,datetime64
似乎没有.weekday()
函数。但是它确实具有busday_offset()
函数,这意味着它必须在幕后才能知道给定日期是星期几。任何帮助表示赞赏。
答案 0 :(得分:4)
请查看以下相关的SO问题:
Get weekday/day-of-week for Datetime column of DataFrame
我了解您的数据是一个numpy数组,通过熊猫将数据转换为数据框格式可能会很有用。如下所示。
import pandas as pd
df = pd.DataFrame(numpyArray)
假设您的数据现在位于数据框中,那么下面的代码(来自上面的链接)应为您提供工作日。
df['weekday'] = df['Timestamp'].dt.dayofweek
此外,该参考文献还可为您提供帮助。
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.dt.dayofweek.html
答案 1 :(得分:1)
如果您正在寻找一种真正的矢量化numpy方法,则可以执行以下操作:
def day_of_week_num(dts):
return (dts.astype('datetime64[D]').view('int64') - 4) % 7
这有点古怪,只是利用了numpy.datetime64
与unix时代(星期四)相关的事实。
(我不知道这是否是一个实现细节,可能会在没有通知的情况下偶然发生,但是您始终可以与assert np.zeros(1).astype('datetime64[D]') == np.datetime64('1970-01-01', 'D')
进行检查。)
答案 2 :(得分:0)
我想你可以这样:
import numpy as np
import datetime
t = '2018-09-19'
t = np.datetime64(t)
day = t.astype(datetime.datetime).isoweekday()
print day
输出:
3