【问题标题】:Python: shape of a matrix and imshow()Python:矩阵的形状和 imshow()
【发布时间】:2010-08-25 14:18:43
【问题描述】:

我有一个 3-D 数组 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。但是为什么呢?

【问题讨论】:

    标签: python arrays multidimensional-array numpy matplotlib


    【解决方案1】:

    做:

    ar[:,:,i]
    

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

    【讨论】:

    • 然后我得到另一个错误:TypeError: list indices must be integers, not tuple
    • @kame:你不是在这里使用 numpy 吗?如果不是,你应该是。具体来说,我认为 ar 是列表列表而不是 numpy 数组。您可以使用ar = np.array( ar ) 将其转换为数组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2018-03-24
    相关资源
    最近更新 更多