繁体   English   中英

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

[英]How to check if all elements of a numpy.array are of the same data type?

我有几个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

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

如果您正在寻找示例中提供的特定数据类型,例如所有项都是浮点数,则可以使用map和reduce来解决问题:

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

您可能要使用列表推导或map()创建数据类型序列,然后根据此序列创建一个set ,并查看集合的长度是否为1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM