我想平均绘制24个数组的平均值,但是有一个错误消息'列表''对象没有属性'shape''。错误在哪里?
empty_array=numpy.zeros[2,30,100]
for x in range (1,25):
array = array[x,:,:,:]
empty_array += array
average = map(lambda x:x/24,empty_array)
plt.figure(1)
plt.pcolor(average)
plt.colorbar(orientation='horizontal')
empty_array=[2,30,100]
不会创建一个空数组。它是包含三个数字的列表。您正在寻找numpy.zeros
看起来您想在其中一个轴中计算平均值。您可以简单地将np.mean()
使用。文档中的示例:
>>> a = np.array([[1, 2], [3, 4]])
>>> np.mean(a)
2.5
>>> np.mean(a, axis=0)
array([ 2., 3.])
>>> np.mean(a, axis=1)
array([ 1.5, 3.5])
这里的关键是正确定义要平均要结束的轴。
其他错误:
-
np.zeros()
将元组描述为输入,即np.zeros((2,30,100))
。 - 您获得"'列表'对象没有属性'形状'的原因是
average
是pythonlist
。Python中的列表没有名为shape
的属性。plt.pcolor()
期望一个2-D(numpy)阵列。