我有一个充满对象(dtype = object)的numpy数组cftime
class.
In [1]: a
Out[1]:
array([cftime.DatetimeNoLeap(2000, 1, 1, 11, 29, 59, 999996, 5, 1),
cftime.DatetimeNoLeap(2000, 1, 2, 11, 29, 59, 999996, 6, 2),
cftime.DatetimeNoLeap(2000, 1, 3, 11, 29, 59, 999996, 0, 3)],
dtype=object)
In [2]: type(a[0])
Out[2]: cftime._cftime.DatetimeNoLeap
这些对象中的每一个都有一个属性month
.
a[0].month
Out[66]: 1
我想获得一个具有相同形状的新 numpy 数组,但为原始数组的每个元素填充此属性。就像是b=a.month
。但显然这失败了,因为a
是一个 numpy 数组,没有month
属性。我怎样才能达到这个结果?
PS:当然,我可以使用普通的 Python 循环来完成此操作,但我想遵循完全 numpy 的方法:
b=np.zeros_like(a, dtype=int)
for i in range(a.size):
b[i] = a[i].month