numpy.ndarray.astype#
方法
- ndarray.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(np.int_) array([1, 2, 2])
>>> x.astype(np.int_, casting="same_value") Traceback (most recent call last): ... ValueError: could not cast 'same_value' double to long
>>> x[:2].astype(np.int_, casting="same_value") array([1, 2])