numpy.char.chararray.astype#
方法
- char.chararray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)#
将数组复制并转换为指定类型。
- 参数:
- dtypestr 或 dtype
要转换到的类型代码或数据类型。
- order{‘C’, ‘F’, ‘A’, ‘K’}, optional
控制结果的内存布局顺序。‘C’ 表示 C 顺序,‘F’ 表示 Fortran 顺序,‘A’ 表示如果所有数组都是 Fortran 连续的,则为 ‘F’ 顺序,否则为 ‘C’ 顺序,而 ‘K’ 表示尽可能接近数组元素在内存中出现的顺序。默认为 ‘K’。
- casting{‘no’, ‘equiv’, ‘safe’, ‘same_kind’, ‘same_value’, ‘unsafe’}, optional
控制可以进行哪些类型的数据转换。默认为 ‘unsafe’ 以保持向后兼容。
‘no’ 表示数据类型不得进行任何转换。
‘equiv’ 表示只允许进行字节顺序更改。
‘safe’ 表示只允许进行可以保留值的转换。
‘same_kind’ 表示只允许安全的转换或同一类别的转换,例如从 float64 到 float32。
‘unsafe’ 表示可以进行任何数据转换。
‘same_value’ 表示可以进行任何数据转换,但值必须保持不变,包括浮点数的舍入或整数的溢出。
2.4 版本新增:支持
'same_value'。- subokbool, optional
如果为 True,则子类将被保留(默认),否则返回的数组将被强制为基类数组。
- copybool, optional
默认情况下,astype 始终返回一个新分配的数组。如果此设置为 False,并且满足
dtype、order 和 subok 的要求,则返回输入数组而不是副本。
- 返回:
- 引发:
- ComplexWarning
当从复数类型转换为浮点数或整数时。为避免此情况,应使用
a.real.astype(t)。- ValueError
当使用
'same_value'进行转换且值发生更改或会发生溢出时。
示例
>>> import numpy as np >>> x = np.array([1, 2, 2.5]) >>> x array([1. , 2. , 2.5])
>>> x.astype(int) array([1, 2, 2])
>>> x.astype(int, casting="same_value") Traceback (most recent call last): ... ValueError: could not cast 'same_value' double to long
>>> x[:2].astype(int, casting="same_value") array([1, 2])