numpy.ndarray.astype

方法

ndarray.astype(dtype, order='K', casting='unsafe', subok=True, copy=True)

数组的副本,强制转换为指定类型。

参数
dtypeSTR或D型

将数组强制转换为的类型代码或数据类型。

order'C'、'F'、'A'、'K',可选

控制结果的内存布局顺序。'“c”表示c顺序,“f”表示fortran顺序,“a”表示f顺序(如果所有数组都是fortran连续的),“c”表示c顺序,而“k”表示数组元素在内存中出现的顺序尽可能接近。默认值是“k”。

casting'no'、'equiv'、'safe'、'same'u kind'、'unsafe'、可选

控制可能发生的数据类型转换。为了向后兼容,默认为“不安全”。

  • “否”表示完全不应强制转换数据类型。

  • “equiv”表示只允许更改字节顺序。

  • “safe”表示只允许保留值的强制转换。

  • “相同类型”意味着只允许安全的类型或类型内的类型,如float64到float32。

  • “不安全”表示可以进行任何数据转换。

subok可选的布尔

如果为true,则将通过子类(默认),否则返回的数组将强制为基类数组。

copy可选的布尔

默认情况下,AsType始终返回新分配的数组。如果设置为假,则 dtypeordersubok 满足要求后,返回输入数组而不是副本。

返回
arr_t恩达雷

除非 copy 为假,并且满足返回输入数组的其他条件(请参见说明 copy 输入参数), arr_t 是与输入数组形状相同的新数组,其dtype和order由 dtypeorder .

加薪
ComplexWarning

当从复数转换为浮点或int时,为了避免这种情况,应该使用 a.real.astype(t) .

笔记

在 1.17.0 版更改: 在简单数据类型和结构化数据类型之间转换只能用于“不安全”转换。允许向多个字段强制转换,但不允许从多个字段强制转换。

在 1.9.0 版更改: 在“安全”强制转换模式下从数字类型强制转换为字符串类型需要字符串数据类型长度足够长,以存储转换的最大整型/浮点值。

实例

>>> x = np.array([1, 2, 2.5])
>>> x
array([1. ,  2. ,  2.5])
>>> x.astype(int)
array([1, 2, 2])