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
如果根据转换规则可以进行转换,则为真.
参见
备注
在 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