我正在尝试将64位整数的numpy数组转换为标准python整数数组(即int
类型的变量)。
在我天真的想法中,我相信np.int64
代表64位整数,int
代表标准python整数,但这似乎不正确:
import numpy as np
a = np.arange(2)
print(a.dtype) # dtype('int64')
print(type(a[0])) # <class 'numpy.int64'>
b = a.astype(int)
print(b.dtype) # dtype('int64')
print(type(b[0])) # <class 'numpy.int64'>
c = a.astype('int')
print(c.dtype) # dtype('int64')
print(type(c[0])) # <class 'numpy.int64'>
当然,有一件事是可行的:
d = a.tolist()
print(type(d[0])) # int
是否可能有一个具有int
类型数的numpy数组,或者numpy是否要求变量具有其等效的np.int
数据类型?
发布于 2018-08-01 18:46:29
这仅仅是一个重新发布的评论,以结束这个问题。
内置
int
不是有效的dtype。它将被转换为任何np.int_
,这可能是np.int64
或np.int32
,这取决于您的平台。可以,但您必须使用dtype=object,这实际上消除了numpy的优点,为您提供了一个Python列表。
由juanpa.arrivillaga
https://stackoverflow.com/questions/51639373
复制相似问题