使用Python的长整型创建numpy数组
我想创建一个类型为 long
的 numpy 数组(也就是 Python 的 long
,不是 numpy 的 long = int64
)。
如果我这样做:
m = np.eye(6, dtype=long)
print(m.dtype)
这会输出 int64
;也就是说,它们不是 Python 的 long
。
有没有办法创建一个每个元素都是 long
类型的 numpy 数组?或者说这是一个固定宽度和非固定宽度的问题,而 numpy 不支持?如果是这样,有没有什么库(最好是有像 numpy 那样好用的 C 接口)可以做到这一点?
1 个回答
8
Python中的长整型并不是numpy自带的数据类型,所以你需要使用object
这种数据类型。使用object
类型的numpy数组里的元素可以是任何Python对象。
比如说,
In [1]: x = np.array([1L, 2L, 3L], dtype=object)
In [2]: x
Out[2]: array([1L, 2L, 3L], dtype=object)
In [3]: x[0]
Out[3]: 1L
In [4]: type(x[0])
Out[4]: long
这对你是否有用,取决于你想用这个长整型数组做什么。