除了使用一组或语句
isinstance( x, np.float64 )或isinstance( x, np.float32 )或isinstance( np.float16 )
是否有更简洁的方法来检查变量是浮动类型?
And*_*den 20
你可以使用np.floating:
In [11]: isinstance(np.float16(1), np.floating)
Out[11]: True
In [12]: isinstance(np.float32(1), np.floating)
Out[12]: True
In [13]: isinstance(np.float64(1), np.floating)
Out[13]: True
Run Code Online (Sandbox Code Playgroud)
注意:非numpy类型返回False:
In [14]: isinstance(1, np.floating)
Out[14]: False
In [15]: isinstance(1.0, np.floating)
Out[15]: False
Run Code Online (Sandbox Code Playgroud)
要包含更多类型,例如python浮点数,您可以在isinstance中使用元组:
In [16]: isinstance(1.0, (np.floating, float))
Out[16]: True
Run Code Online (Sandbox Code Playgroud)
为了检查 numpy 数组中的数字,它为一般类型的数据提供“字符代码”。
x = np.array([3.6, 0.3])
if x.dtype.kind == 'f':
print('x is floating point')
Run Code Online (Sandbox Code Playgroud)
请参阅手册中的其他类型数据。
isinstance使用andis运算符确定数字类型时要小心。
import numpy as np
a = np.array([1.2, 1.3], dtype=np.float32)
print(isinstance(a.dtype, np.float32)) # False
print(isinstance(type(a[0]), np.float32)) # False
print(a.dtype is np.float32) # False
print(type(a[0]) is np.dtype(np.float32)) # False
print(isinstance(a[0], np.float32)) # True
print(type(a[0]) is np.float32) # True
print(a.dtype == np.float32) # True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3082 次 |
| 最近记录: |