numpy.can_cast#

numpy.can_cast(from_, to, casting='safe')#

根据转换规则返回数据类型之间是否可以进行转换。

参数:
from_dtype、dtype 说明符、NumPy 标量或数组

要转换的数据类型、NumPy 标量或数组。

todtype 或 dtype 说明符

要转换到的数据类型。

casting{'no'、'equiv'、'safe'、'same_kind'、'unsafe'},可选

控制可以发生哪种数据转换。

  • “no”表示数据类型根本不应该转换。

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

  • “safe”表示仅允许可以保留值的转换。

  • “same_kind”表示仅允许安全转换或在同一类型内的转换,例如 float64 到 float32。

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

返回值:
outbool

如果可以根据转换规则进行转换,则返回 True。

参见

dtyperesult_type

注释

版本 1.17.0 中已更改: 简单数据类型和结构化数据类型之间的转换仅在“unsafe”转换中才可能。

允许转换为多个字段,但不允许从多个字段转换。

版本 1.9.0 中已更改: 在“safe”转换模式下,从数字类型到字符串类型的转换要求字符串 dtype 长度足以存储转换的最大整数/浮点值。

版本 2.0 中已更改: 此函数不再支持 Python 标量,并且不对 0-D 数组和 NumPy 标量应用任何基于值的逻辑。

示例

>>> import numpy as np
>>> np.can_cast(np.int32, np.int64)
True
>>> np.can_cast(np.float64, complex)
True
>>> np.can_cast(complex, float)
False
>>> np.can_cast('i8', 'f8')
True
>>> np.can_cast('i8', 'f4')
False
>>> np.can_cast('i4', 'S4')
False
基本示例