假设我有一个N*M*X维度的数组"data",其中N和M是固定的,但X是每个条目data[n][m]都不同。
(编辑:为了澄清,我只是在用于读取数据的3D python列表上使用了np.array(),因此numpy数组的维度为N*M,其条目为可变长度列表)
现在,我想计算X维度上的平均值,以便留下一个N*M维度的数组。使用带有axis参数的np.average/mean无法实现,所以我现在的方法就是遍历N和M,并将手动计算的平均值附加到新列表中,但这种做法感觉不太“pythonic”。
(编辑:为了澄清,我只是在用于读取数据的3D python列表上使用了np.array(),因此numpy数组的维度为N*M,其条目为可变长度列表)
现在,我想计算X维度上的平均值,以便留下一个N*M维度的数组。使用带有axis参数的np.average/mean无法实现,所以我现在的方法就是遍历N和M,并将手动计算的平均值附加到新列表中,但这种做法感觉不太“pythonic”。
avgData=[]
for n in data:
temp=[]
for m in n:
temp.append(np.average(m))
avgData.append(temp)
在这里我有没有漏掉什么显而易见的东西?我正在尝试更新我的Python技能,所以有趣/多样的回复是非常欢迎的!:)
谢谢!
X
始终是一个常量),所以您必须使用一些方式来填充这些值或者使用掩码数组等方法。 - mgilson.shape
和.dtype
属性来检查。 - Hannes Ovrén