我有不同类型的数据。他们中的大多数是int
有时float
。大小不同,因此int
大小为 8/ 16/ 32 位。
对于这种情况,我正在创建一个数字类型转换器。因此我通过使用检查类型isinstence()
。这是因为我读过这isinstance()
比type()
.
关键是我得到的很多数据都是 numpy 数组。我使用 spyder 作为 IDE,然后我看到变量也是一种类型。但是当我输入时isinstance(var,'type i read')
我得到了False
。
我做了一些检查:
a = 2.17
b = 3
c = np.array(np.random.rand(2, 8))
d = np.array([1])
因为isinstance(var,type)
我得到:
isinstance(a, float)
True
isinstance(b, int)
True
isinstance(c, float) # or isinstance(c, np.float64)
False
isinstance(d, int) # or isinstance(c, np.int32)
False
c
当我问的d
时候是真的
isinstance(c, np.ndarray)
True
isinstance(d, np.ndarray)
True
我可以通过步骤ndarray
检查
isinstance(c[i][j], np.float64)
True
isinstance(d[i], np.int32)
True
但这意味着对于每个维度我都必须添加一个新索引,否则它会False
再次出现。我可以检查那里的dtype
类型c.dtype == 'float64'
...
好吧,对于我找到并尝试过的东西......我的问题基本上是:
- 该
var.dtype
方法与isinstance()
和type()
(最差/更好等)相比如何? - 如果没有所有手动索引,是否有一些方法
var.dtype
更糟糕?(自动索引等)?isinstance()
isinstance()