我有不同类型的数据。他们中的大多数是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()