Python 用'np.datetime64'对象填充空Numpy数组时出错

Python 用'np.datetime64'对象填充空Numpy数组时出错,python,numpy,datetime,Python,Numpy,Datetime,我一直对Python的标准库datetime对象和Numpy的datetime对象之间的交互感到困惑。下面的代码给出了一个错误,这让我很困惑 from datetime import datetime import numpy as np b = np.empty((1,), dtype=np.datetime64) now = datetime.now() b[0] = np.datetime64(now) 这会产生以下错误: TypeError: Cannot cast NumPy ti

我一直对Python的标准库
datetime
对象和Numpy的
datetime
对象之间的交互感到困惑。下面的代码给出了一个错误,这让我很困惑

from datetime import datetime
import numpy as np

b = np.empty((1,), dtype=np.datetime64)
now = datetime.now()
b[0] = np.datetime64(now)
这会产生以下错误:

TypeError: Cannot cast NumPy timedelta64 scalar from metadata [us] to  according to the rule 'same_kind'

我做错了什么?

np.datetime64
是一个类,而
np.dtype('datetime64[us]”)是一个NumPy数据类型:

import numpy as np
print(type(np.datetime64))
# <class 'type'>

print(type(np.dtype('datetime64[us]')))
# <class 'numpy.dtype'>
请注意,
datetime64[us]
只是许多可能的数据类型之一。对于 例如,有
datetime64[ns]
datetime64[ms]
datetime64[s]
datetime64[D]
datetime64[Y]
D类型,具体取决于所需的时间 决议

datetime.dateitem.now()
返回一个具有微秒分辨率的日期时间,
所以我选择了
datetime64[美国]
来匹配。

谢谢。这就解决了我的问题。在哪里可以找到列出所有数据类型的“官方”文档页面?我找不到。最明显的地方是,只有一个文本“datetime”的实例,它并没有那么丰富的信息。
from datetime import datetime
import numpy as np

b = np.empty((1,), dtype='datetime64[us]')  
# b = np.empty((1,), dtype=np.dtype('datetime64[us]'))  # also works
now = datetime.now()
b[0] = np.datetime64(now)
print(b)
# ['2019-05-30T08:55:43.111008']