使用Python的长整型创建numpy数组

6 投票
1 回答
6785 浏览
提问于 2025-04-17 23:59

我想创建一个类型为 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

这对你是否有用,取决于你想用这个长整型数组做什么。

撰写回答