Python3 本身对整数的支持做了提升,可以支持无限长度的整数:比如:
b = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Python的模块numpy array定义的数组在windows和MACOS上默认长度是不一样的。
- windows上的numpy array,如果不指定dtype的话,默认长度是32位
- MacOS上的numpy array,如果不指定dtype的话,默认长度是64位
也许是numpy array底层是C语言在不同平台上实现导致的差异。
如果在windows上定义numpy array的一个数组:
import numpy as np
a = np.array([200, 200, 200, 200])
那么查看变量,发现数组的每个元素是32位。
如果用dtype进行32到64位的转换:
a.dtype=np.int64
那么查看变量,发现数组的元素变为2个,也就是每2个32位元素合成一个64位元素:
如果使用astype进行32到64位的转换:
a = a.astype(np.int64)
那么查看变量,发现数组的元素还是4个,每个元素值不变,只是类型变成int64.
另外也可以在定义numpy array时候,直接通过dtype指定数组元素的类型。
a = np.array([200, 200, 200, 200],dtype = np.int64)
a
Out[44]: array([200, 200, 200, 200], dtype=int64)