回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>给定以下<code>numpy</code>数组:</p>
<pre><code>import numpy
a=numpy.array([[1,1,1],[1,1,1],[1,1,1]])
b=numpy.array([[2,2,2],[2,2,2],[2,2,2]])
c=numpy.array([[3,3,3],[3,3,3],[3,3,3]])
</code></pre>
<p>这本词典包含了所有这些:</p>
^{pr2}$
<p>迭代<code>mydict</code>以便计算以<code>(1+2+3)/3=2</code>为值的平均numpy数组的最有效方法是什么?在</p>
<p>我的尝试失败了,因为我给了它太多的值来解包。它也非常低效,因为它具有<code>O(n^3)</code>时间复杂性:</p>
<pre><code>aver=numpy.empty([a.shape[0],a.shape[1]])
for c,v in mydict.values():
for i in range(0,a.shape[0]):
for j in range(0,a.shape[1]):
aver[i][j]=mydict[c][i][j] #<-too many values to unpack
</code></pre>
<p>最终结果应为:</p>
<pre><code>In[17]: aver
Out[17]:
array([[ 2., 2., 2.],
[ 2., 2., 2.],
[ 2., 2., 2.]])
</code></pre>
<p><strong>编辑</strong></p>
<p>我不是在寻找每个numpy数组的平均值。我在寻找我的numpy数组的每个元素的平均值。这是一个最小的例子,但是我正在研究的实际情况是每个数组有超过120000个元素,并且对于同一个位置,值会随着数组的不同而变化。在</p>