例如,我有一个字符串数组。
import numpy as np
foo = np.array( [b'2014-04-05', b'2014-04-06', b'2014-04-07'] )
为了检查数组的数据类型,我使用
print( foo.dtype )
这导致了|S10
。显然,它由长度为10的字符串组成,我想将其转换为NumPy的datetime64
类型。
更准确地说,我希望更改数组的数据类型,而不需要循环遍历for-循环并按元素的方向将其复制到新的数组中(实际的数组非常大)。虽然我很天真,但我认为以下几点可能会奏效:
[ np.datetime64(x) for x in foo ]
剧透者:没有。打印数组的数据类型将产生与以前相同的输出(即|S10
)。
是否有一种有效的内存方法来转换现有数组的数据类型,而不需要将所有内容复制到新数组中?
发布于 2018-10-04 12:25:33
使用.astype
和copy=False
避免创建副本:
foo = np.array( [b'2014-04-05', b'2014-04-06', b'2014-04-07'] )
foo = foo.astype('datetime64',copy=False)
>>> foo
array(['2014-04-05', '2014-04-06', '2014-04-07'], dtype='datetime64[D]')
https://stackoverflow.com/questions/52654607
复制相似问题