【问题标题】:AttributeError: 'list' object has no attribute 'reshape'AttributeError:“列表”对象没有属性“重塑”
【发布时间】:2026-01-23 10:50:01
【问题描述】:

我有以下 Python 脚本部分:

X_to_text_file = np.savetxt('x.txt', X.reshape(np.shape(X)), fmt='%5f')

我收到此错误:

AttributeError: 'list' object has no attribute 'reshape'

假设X是一个Numpy数组,我得到如下:

for img in range(len(names)):
    for name in names:
        img = np.array(Image.open(name))
        X.append(img)

任何想法为什么我会收到此错误以及如何解决它?

谢谢。

【问题讨论】:

  • 你提供的 sn-p 没有显示 X 是如何定义的,只是你将 np.array 命名为 'img' 添加到它。
  • @zencodism 是的,我就是这样做的
  • X 不是 numpy 数组,而只是一个 vanilla 列表。您构建了一个 numpy 数组列表,而不是 numpy 数组本身。
  • 循环后尝试X = np.array(X)
  • X = np.array([np.array(Image.open(f)) for f in names])?

标签: python arrays list numpy reshape


【解决方案1】:

我在这里看到两个问题。首先,您的 sn-p 是不完整的,因为没有 X 的定义。没有它,在最小的示例中,您会看到如下内容:

>>> import numpy as np
>>> X.append(np.array())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'X' is not defined

因此,您之前必须在某处创建 X,并且根据您的错误消息判断,它是一个普通的 Python 列表。

现在,关于如何将 numpy 数组连接在一起,我认为 this answer 会帮助您。

【讨论】:

    最近更新 更多