python - 从没有零的 3d 数组中取平均值
问题描述
我想从这个形状矩阵(5,10,15)的axis = 1中取X(avg),但不考虑平均值中的任何零向量。平均矩阵的形状必须为 (5,15)。如果我尝试实现该np.average(l,axis=1)
函数,我将采用形状为 (5,15) 的矩阵,但零向量仍在内部。
[[[ 9 19 6 2 13 4 19 11 19 15 14 2 16 4 2]
[13 11 3 14 12 4 10 11 11 6 10 3 12 1 1]
[12 9 17 5 9 10 17 9 12 2 16 9 10 2 14]
[17 17 15 19 7 18 18 5 9 11 14 14 3 10 2]
[ 9 3 13 19 18 18 17 5 16 5 2 15 19 16 12]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 9 11 10 12 12 12 10 9 18 16 15 2 11 17 12]
[ 5 13 18 19 17 13 8 8 1 4 7 7 12 10 14]
[ 9 3 13 19 18 18 17 5 16 5 2 15 19 16 12]
[ 9 11 10 12 12 12 10 9 18 16 15 2 11 17 12]]
[[ 5 13 18 19 17 13 8 8 1 4 7 7 12 10 14]
[ 5 13 18 19 17 13 8 8 1 4 7 7 12 10 14]
[18 7 16 9 8 14 19 15 12 3 15 15 8 7 4]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[18 7 16 9 8 14 19 15 12 3 15 15 8 7 4]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[16 5 3 6 8 16 9 2 7 12 16 14 19 4 17]
[19 4 10 4 15 12 4 3 2 1 17 16 8 2 6]
[ 9 11 10 12 12 12 10 9 18 16 15 2 11 17 12]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]
[[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 9 3 13 19 18 18 17 5 16 5 2 15 19 16 12]
[ 2 11 6 4 13 6 11 5 3 15 9 13 13 18 9]
[13 7 15 10 2 5 5 2 10 1 10 14 12 9 6]
[ 9 19 6 2 13 4 19 11 19 15 14 2 16 4 2]
[ 4 10 11 19 11 5 3 14 19 11 2 1 15 6 10]
[11 12 16 9 8 16 19 8 12 1 19 16 1 8 17]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[11 12 16 9 8 16 19 8 12 1 19 16 1 8 17]
[ 9 3 13 19 18 18 17 5 16 5 2 15 19 16 12]]
[[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[11 12 16 9 8 16 19 8 12 1 19 16 1 8 17]
[19 2 3 5 2 12 1 8 10 9 12 16 17 16 15]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[13 11 3 14 12 4 10 11 11 6 10 3 12 1 1]
[ 9 19 6 2 13 4 19 11 19 15 14 2 16 4 2]
[12 9 17 5 9 10 17 9 12 2 16 9 10 2 14]
[ 5 13 18 19 17 13 8 8 1 4 7 7 12 10 14]
[18 7 16 9 8 14 19 15 12 3 15 15 8 7 4]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]
[[ 9 19 6 2 13 4 19 11 19 15 14 2 16 4 2]
[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[ 9 11 10 12 12 12 10 9 18 16 15 2 11 17 12]
[19 2 3 5 2 12 1 8 10 9 12 16 17 16 15]
[10 19 7 9 5 7 5 1 15 8 19 7 15 10 12]
[12 9 17 5 9 10 17 9 12 2 16 9 10 2 14]
[ 5 13 18 19 17 13 8 8 1 4 7 7 12 10 14]
[13 11 3 14 12 4 10 11 11 6 10 3 12 1 1]
[19 4 9 17 10 13 10 17 12 13 9 8 12 10 15]
[ 9 11 10 12 12 12 10 9 18 16 15 2 11 17 12]]]
解决方案
您可以使用 的权重很np.average
容易地跳过零:
np.average(v, axis=1, weights=v>0)
输出结果:
array([[10.22222222, 10.77777778, 11.66666667, 13.44444444, 13.11111111,
12.11111111, 14. , 8. , 13.33333333, 8.88888889,
10.55555556, 7.66666667, 12.55555556, 10.33333333, 9. ],
[12.85714286, 8.57142857, 13. , 11.14285714, 12.14285714,
13.42857143, 11. , 8.57142857, 7.57142857, 6.14285714,
13.14285714, 10.85714286, 11.14285714, 8.14285714, 10.14285714],
[ 8.5 , 9.625 , 12. , 11.375 , 11.375 ,
11. , 13.75 , 7.25 , 13.375 , 6.75 ,
9.625 , 11.5 , 12. , 10.625 , 10.625 ],
[12.42857143, 10.42857143, 11.28571429, 9. , 9.85714286,
10.42857143, 13.28571429, 10. , 11. , 5.71428571,
13.28571429, 9.71428571, 10.85714286, 6.85714286, 9.57142857],
[11.66666667, 11. , 9.22222222, 10.55555556, 10.22222222,
9.66666667, 10. , 9.22222222, 12.88888889, 9.88888889,
13. , 6.22222222, 12.88888889, 9.66666667, 10.77777778]])
推荐阅读
- node.js - 在 Win ES 7 上使用 PM2 运行 node-red 时出现“SyntaxError: Invalid or unexpected token”
- json - 使用短期令牌将 docker 镜像推送到 GCP
- python-3.x - 我不断收到此错误:AttributeError:模块'admin'没有属性'run_admin_options'
- reactjs - 如果我访问我的网站,为什么会显示我的目录索引
- c# - 使用 ASP.NET CORE API 显式访问选项实例并将其传递给 ConfigureServices 中的方法
- git - 强制推送后如何从 GitHub PR 永久删除(或隐藏)提交
- angular6 - Angular Material Datepicker - 更改输出的方法
- ios - Ionic 应用程序未在 info plist 文件中显示各种权限,尽管它们位于 config.xml 中
- sql-server - SQL Server 中的 DATEDIFF
- javascript - 我需要澄清反应的状态和生命周期