my_array = numpy.array(my_list,dtype=numpy.int64)
long
来引用32位类型。将Python更改为在int
的内部表示中使用long long
可能会破坏扩展模块。long
)。在64位系统上,任意精度类型按2 ^ 30位的块工作。在32位系统上,任意精度类型按2 ^ 15位的块工作。值15和30很难改变。gmpy2.mpz
整数类型通常更有效率。你的情况可能有所不同。PyLong
值拆箱为机器上的long
值以提高性能(例如实现内置sum
)。在这些情况下,Windows版本需要通过调用PyLong_AsLongLongAndOverflow
将其拆箱为long long
值。这会使代码更难以维护。 - Eryk SunPython有四种数字类型,其中包括整数类型int和long。长整型具有无限精度。当你输入一个足够大的数字时,会自动转换为长整型,或者你可以通过在数字后面添加“l”来显式指定。
>>> s = 1000
>>> type(s)
<type 'int'>
>>> s = 1000l
>>> type(s)
<type 'long'>
int
和long
之间的区别。问题是如何让Python本身利用处理器的64位能力来处理int
类型,以避免long
固有的缓慢。 - Mark Ransom