Alf*_*Alf 4 python arrays numpy
例如,我有一个字符串数组
import numpy as np
foo = np.array( [b'2014-04-05', b'2014-04-06', b'2014-04-07'] )
Run Code Online (Sandbox Code Playgroud)
为了检查数组的数据类型,我用
print( foo.dtype )
Run Code Online (Sandbox Code Playgroud)
这导致|S10
. 显然,它由长度为 10 的字符串组成。我想将其转换为numpy
'sdatetime64
类型。
更准确地说,我想更改数组的数据类型,而无需遍历 for 循环并将其逐元素复制到新数组中(实际数组实际上非常大)。像我一样天真,我认为以下可能有效
[ np.datetime64(x) for x in foo ]
Run Code Online (Sandbox Code Playgroud)
剧透:它没有。打印数组的数据类型会产生与之前相同的输出(即|S10
)。
是否有任何内存有效的方法来转换现有数组的数据类型,而无需将所有内容复制到新数组?
使用.astype
, withcopy=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]')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2996 次 |
最近记录: |