Python:Numpy dtype U32 - 简单的if-else语句

时间:2016-02-12 16:20:19

标签: python arrays numpy

我不理解numpy数组的以下行为。给出以下数组f:

array([u'1.8', u'1.8', u'2.4', u'2.2', u'2.0', u'2.1', u'2.8', u'3.2',
       u'3.3', u'3.4', u'2.8'], dtype='<U32')

for a in f:
    if a > 2.2:
        print "greater"
    else:
        print "smaller"

结果总是更大。

1 个答案:

答案 0 :(得分:2)

这是因为数组中的值是unicode字符串,而不是整数。在python中,数字类型将永远是&#34;更大&#34;比较时非数字类型。有关更深入的解释,请参阅https://stackoverflow.com/a/3270689/5919154

要获得您想要的功能,您需要将字符串转换为数字。