Python:矩阵的形状和imshow()

时间:2010-08-25 14:18:44

标签: python arrays multidimensional-array numpy matplotlib

我有一个三维数组ar。

print shape(ar)  # --> (81, 81, 256) 

我想绘制这个数组。

fig = plt.figure()
ax1 = fig.add_subplot(111)
for i in arange(256):
    im1 = ax1.imshow(ar[:][:][i])
    plt.draw()
    print i

我收到此错误消息:

    im1 = ax1.imshow(ar[:][:][i])
IndexError: list index out of range

为什么我会收到这条奇怪的消息?该图表的大小为81 x 256,而不是预期的81 x 81.但为什么呢?

1 个答案:

答案 0 :(得分:2)

执行:

ar[:,:,i]

语法ar[:]复制ar(对其所有元素进行切片),因此ar[:][:][i]在语义上等同于ar[i]。这是一个81 * 256矩阵,因为ndarrays是嵌套列表。