抱歉,如果这是一个简单的问题,但我在numpy文档中看不到任何东西。我有一台datetime64,我想知道现在是星期几。
与python datetime不同,datetime64似乎没有.weekday()函数。然而,它确实有一个busday_offset()函数,这意味着它必须知道给定日期是一周中的哪一天。非常感谢您的帮助。
发布于 2018-09-19 13:48:34
我认为你可以这样做:
import numpy as np
import datetime
t = '2018-09-19'
t = np.datetime64(t)
day = t.astype(datetime.datetime).isoweekday()
print day输出:
3发布于 2018-09-19 13:41:07
请看以下相关的SO问题:
Get weekday/day-of-week for Datetime column of DataFrame
我知道你的数据是一个numpy数组,通过pandas将你的数据转换成dataframe格式可能会很有用。如下所示。
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
发布于 2019-01-19 12:57:31
如果你正在寻找一种真正的矢量化的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')查询。)
https://stackoverflow.com/questions/52398383
复制相似问题