如何检查numpy.array的所有元素是否具有相同的数据类型?

时间:2014-03-10 15:47:13

标签: python numpy

我有几个numpy数组,可以格式化为

[1.525, 2.565, 6.367, ...]  # elements are float numbers

['', '', '', ...]  # elements are empty strings

我想知道数组中的所有元素是否具有相同的数据类型。

目前,我正在使用:

if isinstance(np.any(time_serie),float):
    return sum(time_serie)

但是这个不起作用。我收到了以下错误:

TypeError: cannot perform reduce with flexible type

那么,我可以知道如何解决这个问题吗?感谢。

2 个答案:

答案 0 :(得分:1)

如果您正在寻找示例中提供的特定数据类型,例如所有项目都是花车,然后地图和减少就可以了:

>>> x = [1.525, 2.565, 6.367]

>>> all(map(lambda i: isinstance(i, float), x))
    True

>>> x = [1.525, 2.565, '6.367']

>>> all(map(lambda i: isinstance(i, float), x))
    False

答案 1 :(得分:0)

您可能希望使用列表推导或map()来创建数据类型序列,然后从此序列中生成set,并查看该集的长度是否为1。

相关问题