python - 计算存储在列表中的二维 numpy 数组的平均值
问题描述
A:
[array([[0.10865657, 0.10638294, 0.10471012, 0.09508586, 0.09283491],
[0.10892282, 0.10664408, 0.10496752, 0.09531553, 0.09305617],
[0.11664 , 0.1143077 , 0.11259081, 0.1026154 , 0.10025029],
[0.11626453, 0.11392252, 0.11219875, 0.10217754, 0.09980005]]),
array([[0.04213751, 0.04178241, 0.04158858, 0.04331489, 0.04447674],
[0.04213751, 0.04178241, 0.04158858, 0.04331489, 0.04447674],
[0.04267657, 0.04255925, 0.04253528, 0.04520177, 0.04655534],
...
我能做到a[0].mean
,我会得到想要的结果。通过我想对'a'
with for 循环的整个长度进行。
我试过了:
mean_all = []
for i in len(dist):
mean = dist[i].mean
mean_all.append(mean)
TypeError:“int”对象不可迭代
解决方案
首先,dist[0].mean
返回一个函数而不是平均值。一般来说,您需要dist[0].mean()
.
您可以使用列表推导轻松避免 for 循环:
from numpy import array
dist = [array([[0.10865657, 0.10638294, 0.10471012, 0.09508586, 0.09283491],
[0.10892282, 0.10664408, 0.10496752, 0.09531553, 0.09305617],
[0.11664 , 0.1143077 , 0.11259081, 0.1026154 , 0.10025029],
[0.11626453, 0.11392252, 0.11219875, 0.10217754, 0.09980005]]),
array([[0.04213751, 0.04178241, 0.04158858, 0.04331489, 0.04447674],
[0.04213751, 0.04178241, 0.04158858, 0.04331489, 0.04447674],
[0.04267657, 0.04255925, 0.04253528, 0.04520177, 0.04655534]])]
mean_all = [dist[i].mean() for i in range(len(dist))]
print(mean_all)
[0.10536720549999998, 0.04307523133333334]
如果你真的想使用for
循环,使用这个:
mean_all = []
for i in range(len(dist)):
mean = dist[i].mean()
mean_all.append(mean)
print(mean_all)
[0.10536720549999998, 0.04307523133333334]
推荐阅读
- python-2.7 - 使用 boto3 将文件上传到 S3 存储桶中的特定文件夹
- vhdl - VHDL中的“异或”是按位还是逻辑?
- gcc - 获取标签地址到 THUMB 程序集上的寄存器 - Armv5
- c# - 如何使用 vuforia 框架统一修复“CS0117”错误
- vba - 通过他们的 wparam 删除消息
- javascript - 比较对象、复选框检查、编辑复选框
- python - 直方图的自定义排序
- javascript - 带有默认应用程序 CSS 的 TinyMCE 内容
- javascript - 最小材料表演示 ID 列未呈现?
- youtube - 除了配额分配之外,Youtube Data API V3 还存在哪些限制?