numpy.recarray.astype

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.recarray.astype.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

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

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

参数:

dtype:str或dtype

数组被转换到的类型代码或数据类型。

订单:{'C','F','A','K'},可选

控制结果的内存布局顺序。'C'表示C顺序,'F'表示Fortran顺序,'A'表示'F'顺序,如果所有数组都是Fortran连续的,'C'顺序否则,'K'表示接近数组元素出现的顺序在内存中。默认值为“K”。

投射:{'no','equiv','safe','same_kind','unsafe'},可选

控制可能发生的数据转换类型。默认为'不安全',以实现向后兼容性。

  • 'no'意味着不应该转换数据类型。
  • 'equiv'意味着只允许字节顺序改变。
  • “安全”意味着只允许保留值的转换。
  • 'same_kind'表示只允许一种类型中的安全类型转换,例如float64到float32。
  • “不安全”表示可以进行任何数据转换。

subok:bool,可选

如果为True,则子类将被传递(默认),否则返回的数组将被强制为基类数组。

copy:bool,可选

默认情况下,astype总是返回一个新分配的数组。如果此设置为false,并且满足dtypeordersubok要求,则返回输入数组,而不是副本。

返回:

arr_t:ndarray

除非copy为False,并且满足返回输入数组的其他条件(参见copy输入参数的说明),arr_t具有与输入数组相同的形状,其中dtype,由dtypeorder给出的顺序。

上升:

ComplexWarning

当从complex转换为float或int时。为了避免这种情况,应该使用a.real.astype(t)

笔记

从NumPy 1.9开始,astype方法现在返回一个错误,如果要转换的字符串dtype在“安全”转换模式下不够长,以保持正在转换的整数/浮点数组的最大值。以前即使结果被截断也允许转换。

例子

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