我不理解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"
结果总是更大。
答案 0 :(得分:2)
这是因为数组中的值是unicode字符串,而不是整数。在python中,数字类型将永远是&#34;更大&#34;比较时非数字类型。有关更深入的解释,请参阅https://stackoverflow.com/a/3270689/5919154。
要获得您想要的功能,您需要将字符串转换为数字。