numpy.can_cast#

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

根据转换规则,如果数据类型之间的转换可以发生,则返回 True.

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

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

todtype 或 dtype 说明符

要转换的数据类型.

casting{‘no’, ‘equiv’, ‘safe’, ‘same_kind’, ‘unsafe’}, 可选

控制可能发生的数据转换类型.

  • ‘no’ 意味着数据类型根本不应该被转换.

  • ‘equiv’ 意味着只允许字节顺序的改变.

  • ‘safe’ 意味着只允许可以保留值的转换.

  • ‘same_kind’ 意味着只允许安全转换或同一类型内的转换,例如从 float64 到 float32.

  • ‘unsafe’ 意味着任何数据转换都可能进行.

返回:
outbool

如果根据转换规则可以进行转换,则为真.

参见

dtype, result_type

备注

在 1.17.0 版本发生变更: 简单数据类型和结构化数据类型之间的转换仅在”不安全”转换时才可能.允许多个字段的转换,但不允许多个字段的转换.

在 1.9.0 版本发生变更: 在’安全’转换模式下,从数值类型转换为字符串类型需要字符串数据类型的长度足够长,以存储转换后的最大整数/浮点值.

在 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