您只需将您的mean
计算结果分配给data
即可。所以,如果我有x = [1,2,3]
,然后我x = 4
,然后x == 4
和原始列表被丢弃。
所以,当你说:
无论出于何种原因,这样当它只是服用计算,最后 平均值,并把该进阵列写...
这是错误的。它不是对数组做任何事情,它将在循环的每次迭代中将data
重新分配为np.average(x)
的值,因此,data
将是最后一次迭代中的任何np.average(x)
。
无论如何,我会完全放弃你的循环方法,而是使用内置的np.mean
,无论是函数还是方法。因此,使用玩具,例如:
>>> pr1 = np.random.randint(-5, 20, (8, 2, 3))
>>> pr1
array([[[16, 4, -5],
[ 5, 16, 7]],
[[13, 16, -3],
[12, 10, 14]],
[[13, -4, 12],
[-5, 12, 1]],
[[ 9, -1, -3],
[14, 11, 15]],
[[12, 17, 14],
[16, 5, 2]],
[[-1, 13, -2],
[ 4, 9, 11]],
[[12, 8, 19],
[ 4, 9, -2]],
[[-4, -2, 1],
[ 8, -1, 14]]])
>>>
然后简单:
>>> data = pr1.mean(axis=(1,2))
>>> data
array([ 7.16666667, 10.33333333, 4.83333333, 7.5 ,
11. , 5.66666667, 8.33333333, 2.66666667])
>>> data.shape
(8,)
>>> pr1.shape
(8, 2, 3)
>>>
是的,因为你只是分配'np.average(X)'的结果'data',并丢弃您的阵列。 –