当我想更改numpy中的数据类型时遇到一个奇怪的问题,因为可以更改1D,但不能更改2D。能告诉我为什么会发生这种情况吗? 示例:
a = np.array([['20101003', '', '20101003'], ['1.2', '', '2.3']])
b = np.array(['20101003', '', '20101003'])
def to_date(x):
if x:
return datetime.strptime(x, '%Y%m%d').date()
else:
return None
a[0] = np.array(list(map(to_date, a[0])))
b = np.array(list(map(to_date, b)))
print(a[0], type(a[0]))
>>>['2010-10-' 'None' '2010-10-'] <class 'numpy.ndarray'>
print(b, type(b))
>>>[datetime.date(2010, 10, 3) None datetime.date(2010, 10, 3)] <class 'numpy.ndarray'>
为什么b可以成功更改数据类型,而a [0]则不能成功。
谢谢