numpy数组使用python的long类型

时间:2014-03-26 14:27:56

标签: python arrays numpy

我正在尝试创建一个类型为long的numpy数组(即Python的long,而不是numpy的long = int64)。

如果我这样做:

m = np.eye(6, dtype=long)
print(m.dtype)

这输出int64;即,它们不是Python long s。

有没有办法创建一个numpy数组,每个元素的类型为long?或者这是numpy不支持的固定宽度与非固定宽度问题?如果是这样,是否有任何库(最好有一个很好的C API,如numpy的)可以做到这一点?

1 个答案:

答案 0 :(得分:7)

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

这是否对你有用取决于你想对长阵列做什么。