Python:矩阵的形状和imshow()

Python:矩阵的形状和imshow(),python,arrays,multidimensional-array,numpy,matplotlib,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: li

我有一个三维阵列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不同。但是为什么呢

Do:

ar[:,:,i]

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

然后我得到了另一个错误:TypeError:列表索引必须是整数,而不是整数tuple@kame:您在这里不使用numpy吗?如果不是,你应该是。具体来说,我认为
ar
是一个列表列表,而不是一个numpy数组。您可以使用
ar=np.array(ar)
将其强制转换为数组。