当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy can_cast用法及代码示例


本文简要介绍 python 语言中 numpy.can_cast 的用法。

用法:

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

如果可以根据转换规则在数据类型之间进行转换,则返回 True。如果 from 是标量或数组标量,则如果标量值可以在没有溢出或截断的情况下强制转换为整数,则也返回 True。

参数

from_ dtype、dtype 说明符、标量或数组

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

to dtype 或 dtype 说明符

要转换为的数据类型。

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

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

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

  • ‘equiv’ 表示只允许更改字节顺序。

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

  • ‘same_kind’ 表示只允许安全类型转换或类型中的类型转换,如 float64 到 float32。

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

返回

out bool

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

注意

例子

基本示例

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

铸造标量

>>> np.can_cast(100, 'i1')
True
>>> np.can_cast(150, 'i1')
False
>>> np.can_cast(150, 'u1')
True
>>> np.can_cast(3.5e100, np.float32)
False
>>> np.can_cast(1000.0, np.float32)
True

数组标量检查值,数组不检查

>>> np.can_cast(np.array(1000.0), np.float32)
True
>>> np.can_cast(np.array([1000.0]), np.float32)
False

使用铸造规则

>>> np.can_cast('i8', 'i8', 'no')
True
>>> np.can_cast('<i8', '>i8', 'no')
False
>>> np.can_cast('<i8', '>i8', 'equiv')
True
>>> np.can_cast('<i4', '>i8', 'equiv')
False
>>> np.can_cast('<i4', '>i8', 'safe')
True
>>> np.can_cast('<i8', '>i4', 'safe')
False
>>> np.can_cast('<i8', '>i4', 'same_kind')
True
>>> np.can_cast('<i8', '>u4', 'same_kind')
False
>>> np.can_cast('<i8', '>u4', 'unsafe')
True

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.can_cast。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。