numpy.recarray.astype#
方法
- recarray.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’ 表示尽可能接近数组元素在内存中出现的顺序.默认是 ‘K’.
- casting{‘no’, ‘equiv’, ‘safe’, ‘same_kind’, ‘unsafe’}, 可选
控制可能发生的数据转换类型.默认为 ‘不安全’ 以保持向后兼容性.
‘no’ 意味着数据类型根本不应该被转换.
‘equiv’ 意味着只允许字节顺序的改变.
‘safe’ 意味着只允许可以保留值的转换.
‘same_kind’ 意味着只允许安全转换或同类转换,例如 float64 到 float32.
‘unsafe’ 意味着任何数据转换都可能进行.
- subokbool, 可选
如果为真,则子类将被传递(默认),否则返回的数组将被强制为基类数组.
- copybool, 可选
默认情况下,astype 总是返回一个新的分配的数组.如果设置为 false,并且
dtype
、order 和 subok 要求得到满足,则返回输入数组而不是副本.
- 返回:
- 引发:
- ComplexWarning
当从复数转换为浮点数或整数时.为了避免这种情况,应使用
a.real.astype(t)
.
备注
在 1.17.0 版本发生变更: 简单数据类型和结构化数据类型之间的转换仅在”不安全”转换时才可能.允许多个字段的转换,但不允许多个字段的转换.
在 1.9.0 版本发生变更: 在’安全’转换模式下,从数值类型转换为字符串类型需要字符串数据类型的长度足够长,以存储转换的最大整数/浮点值.
示例
>>> import numpy as np >>> x = np.array([1, 2, 2.5]) >>> x array([1. , 2. , 2.5])
>>> x.astype(int) array([1, 2, 2])