加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – numpy的多个数组的平均值,不考虑零值

发布时间:2020-12-20 12:21:17 所属栏目:Python 来源:网络整理
导读:我正在努力numpy,我有许多具有相同大小和形状的数组,如: a = [153 186 0 258] ??b = [156 136 156 0] ??c = [193 150 950 757] 我想要平均数组,但我希望程序忽略计算中的零值.因此,此示例的结果数组将为:d = [167.333 157.333 553 507.5] 这是这个计算的结
我正在努力numpy,我有许多具有相同大小和形状的数组,如:
a = [153 186 0 258]
??b = [156 136 156 0]
??c = [193 150 950 757]
我想要平均数组,但我希望程序忽略计算中的零值.因此,此示例的结果数组将为:d = [167.333 157.333 553 507.5]
这是这个计算的结果:d = [(153 156 193)/ 3(186 136 150)/ 3(156 950)/ 2(258 757)/ 2].有可能吗?

解决方法

>>> import numpy as np
>>> a = np.array([153,186,258])
>>> b = np.array([156,136,156,0])
>>> c = np.array([193,150,950,757])
>>> [np.mean([x for x in s if x]) for s in np.c_[a,b,c]]
[167.33333333333334,157.33333333333334,553.0,507.5]

或者更好的选择:

>>> A = np.vstack([a,c])
>>> np.average(A,axis=0,weights=A.astype(bool))
array([ 167.33333333,157.33333333,553.,507.5       ])

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读