jax.numpy.can_cast

内容

jax.numpy.can_cast#

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

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

参数:
  • from (dtypedtype 说明符NumPy 标量数组) – 要从中转换的数据类型、NumPy 标量或数组。

  • to (dtypedtype 说明符) – 要转换到的数据类型。

  • casting ({'no''equiv''safe''same_kind''unsafe'}可选) –

    控制允许发生哪种数据转换。

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

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

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

    • ’same_kind’ 表示仅允许安全转换或同类转换(例如 float64 到 float32)。

    • ’unsafe’ 表示可以执行任何数据转换。

返回值:

out – 如果根据转换规则可以发生转换,则返回 True。

返回类型:

bool

注释

1.17.0 版中的更改: 简单数据类型和结构化数据类型之间的转换仅在“unsafe”转换中才有可能。允许转换到多个字段,但不允许从多个字段转换。

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

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

另请参阅

dtyperesult_type

示例

基本示例

>>> 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