jax.numpy.can_cast#
- jax.numpy.can_cast(from_, to, casting='safe')#
如果根据类型转换规则可以在数据类型之间进行转换,则返回 True。
- 参数:
from (dtype, dtype specifier, NumPy scalar, or array) – 要转换的数据类型、NumPy 标量或数组。
to (dtype or dtype specifier) – 要转换的数据类型。
casting ({'no', 'equiv', 'safe', 'same_kind', 'unsafe'}, optional) – 控制可能发生的数据类型转换。* ‘no’ 表示数据类型不应进行任何转换。* ‘equiv’ 表示只允许字节顺序的更改。* ‘safe’ 表示只允许可以保留值的转换。* ‘same_kind’ 表示只允许安全的转换或同一类型内的转换,例如 float64 到 float32。* ‘unsafe’ 表示可以进行任何数据转换。
- 返回:
out – 如果根据转换规则可以进行转换,则为 True。
- 返回类型:
备注
在 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