将dtype从int64转换为int32

时间:2014-03-28 23:41:09

标签: python numpy

基本上,我使用python x32位从文件加载包含几个numpy数组的列表对象(之前使用python x64保存在pickle中)。

我可以正确加载它们并检查内容但我不能使用它们。

TypeError: Cannot cast array data from dtype('int64') to dtype('int32')

如何将数组元素类型从列表中转换为int32,以便我可以将它们与python x32一起使用。

当我尝试执行以下部分时出现错误:

a=np.bincount(np.hstack(data['Y']))

查看data['Y']内的内容 enter image description here

1 个答案:

答案 0 :(得分:15)

正如其他人所说,32位版本的numpy仍然支持64位dtypes。但是如果你真的需要转换为int32,你可以使用astype函数:

>>> import numpy as np
>>> x = np.array([1,2,3], dtype=np.int64)
>>> x
array([1, 2, 3])
>>> x.dtype
dtype('int64')
>>> y = x.astype(np.int32)
>>> y
array([1, 2, 3], dtype=int32)