numpy.ndarray.astype#
方法
- ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)#
数组的副本,转换为指定类型。
- 参数:
- dtypestr 或 dtype
数组转换成的类型码或数据类型。
- order{‘C’, ‘F’, ‘A’, ‘K’}, 可选
控制结果的内存布局顺序。‘C’ 表示 C 顺序,‘F’ 表示 Fortran 顺序,‘A’ 表示如果所有数组都是 Fortran 连续的则为 ‘F’ 顺序,否则为 ‘C’ 顺序,‘K’ 表示尽可能接近数组元素在内存中的顺序。
- casting{‘no’, ‘equiv’, ‘safe’, ‘same_kind’, ‘unsafe’}, 可选
控制允许进行哪种数据转换。默认情况下,为了向后兼容性,设置为 ‘unsafe’。
‘no’ 表示数据类型不应该转换。
‘equiv’ 表示只允许字节顺序更改。
‘safe’ 表示只允许可以保留值的转换。
‘same_kind’ 表示只允许安全转换或在一种类型内的转换,例如 float64 到 float32。
‘unsafe’ 表示可以进行任何数据转换。
- subokbool, 可选
如果为 True,则子类将被传递(默认),否则返回的数组将强制为基类数组。
- copybool, 可选
默认情况下,astype 始终返回一个新分配的数组。如果设置为 False,并且
dtype
、order 和 subok 要求得到满足,则返回输入数组而不是副本。
- 返回值:
- 引发:
- ComplexWarning
从复数转换为浮点数或整数时。为了避免这种情况,应该使用
a.real.astype(t)
。
注意
在版本 1.17.0 中更改: 简单数据类型和结构化数据类型之间的转换只有在 “unsafe” 转换的情况下才有可能。允许转换为多个字段,但不能从多个字段转换。
在版本 1.9.0 中更改: 在 “safe” 转换模式下从数值类型转换为字符串类型要求字符串 dtype 长度足够长,以存储转换后的最大整数/浮点值。
示例
>>> import numpy as np >>> x = np.array([1, 2, 2.5]) >>> x array([1. , 2. , 2.5])
>>> x.astype(int) array([1, 2, 2])