千家信息网

numpy中向量式三目运算符怎么用

发表于:2024-10-28 作者:千家信息网编辑
千家信息网最后更新 2024年10月28日,本文小编为大家详细介绍"numpy中向量式三目运算符怎么用",内容详细,步骤清晰,细节处理妥当,希望这篇"numpy中向量式三目运算符怎么用"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
千家信息网最后更新 2024年10月28日numpy中向量式三目运算符怎么用

本文小编为大家详细介绍"numpy中向量式三目运算符怎么用",内容详细,步骤清晰,细节处理妥当,希望这篇"numpy中向量式三目运算符怎么用"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

记录如下:

In [76]: xarr = np.array([1.1,1.2,1.3,1.4,1.5])In [77]: yarr = xarr + 1In [78]: xarrOut[78]: array([ 1.1, 1.2, 1.3, 1.4, 1.5])In [79]: yarrOut[79]: array([ 2.1, 2.2, 2.3, 2.4, 2.5])In [80]: cond = np.array([True,False,True,True,False])In [81]: condOut[81]: array([ True, False, True, True, False], dtype=bool)In [82]: result1 = [(x if c else y) for x,y,c in zip(xarr,yarr,cond)]In [83]: result1Out[83]: [1.1000000000000001, 2.2000000000000002, 1.3, 1.3999999999999999, 2.5]In [84]: result2 = np.where(cond,xarr,yarr)In [85]: result2Out[85]: array([ 1.1, 2.2, 1.3, 1.4, 2.5])

从浮点表示上,两者有一点点小小的差异,在小数点后多位,通常在数值表示上可以忽略。不过,这里还是要进行一下两个结果的一致性判断,因为之前也看到过Python在浮点表达上因为机器而产生的差异。

测试的结果如下:

In [87]: result1 == result2Out[87]: array([ True, True, True, True, True], dtype=bool)

从上面的结果可以看出,两个计算结果是一致的。

读到这里,这篇"numpy中向量式三目运算符怎么用"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0