Numpy数据类型基础

Numpy 中的数组比 Python 原生中的数组(只支持整数类型与浮点类型)强大的一点就是它支持更多的数据类型。

更多关于:NumPy

基本数据类型

Numpy 常见的基本数据类型如下:

以上这些数据类型都可以通过 np.bool_np.float32等方式访问。

这些类型都可以在创建 ndarray 时通过参数 dtype 来指定。

>>> a = np.arange(3, dtype=np.float16)
>>> a
array([ 0.,  1.,  2.])
>>> a.dtype
dtype('float16')

此外,在创建 ndarray 对象时,也可以通过字符代码来替换,主要是为了保持与较旧包(例如Numeric)的向后兼容性。

>>> np.array([1, 2, 3], dtype='f')
array([ 1.,  2.,  3.], dtype=float32)

但是不推荐使用这种字符代码的方式。

类型转换

要转换数组的类型,可以使用.astype()方法(首选)或类型本身或.asarray()方法作为函数。

当要转换的类型与之前的类型相同时,类型本身方法和.asarray()方法会返回原来数组的一个引用,但是.astype()每次返回一个新的数组,即使转换的类型是相同的。

>>> a
array([ 0.,  1.,  2.], dtype=float16)
>>> a.astype(np.bool_)
array([False,  True,  True], dtype=bool)
>>> a.astype(np.float16) is a
False
>>> np.bool_(a)
array([False,  True,  True], dtype=bool)
>>> np.float16(a) is a
True
>>> np.asarray(a, dtype=np.bool_)
array([False,  True,  True], dtype=bool)
>>> np.asarray(a, dtype=np.float16) is a
True

发表评论

电子邮件地址不会被公开。 必填项已用*标注