gpt4 book ai didi

python - AttributeError 列表对象没有添加属性

转载 作者:太空狗 更新时间:2023-10-30 00:59:33 26 4
gpt4 key购买 nike

Python 对我来说是新手,我正在使用 Python 编写一些机器学习代码。我的场景是我正在从我的 sql 中读取数据并尝试为这些数据赋予形状,以便我可以将其用于 MLP 训练。

我的代码如下:

connection = mysql.connector.connect(host='localhost', port=3306, user='root', passwd='mysql', db='medicalgame')

cur = connection.cursor()
query = ""
cur.execute(query)
# X_train will be a list of list and later we'll convert it to a numpy ndarray
X_train = []

for row in cur:
X_train.add(row)
connection.close()

X_train should be ready
X_train = np.asarray(X_train)
print 'The shape of X_train is', X_train.shape

在调试期间,我得到的查询结果是这样的:(6, 1, 1, 1, 2, u'F', 1, 0, 0, 19)任何人都可以帮助我如何修复错误并赋予 X_train 形状,以便 MLP 接受它作为输入?

最佳答案

信息很明确。 list 没有方法 add 因为它是有序的(它有一个 dunder __add__ 方法,但那是加法 列表之间)。您可以插入,但您想要追加。所以正确的做法是:

X_train = []

for row in cur:
X_train.append(row)

但是直接转换为列表的首选方式(迭代 cur 元素以以简单且高效的方式创建列表):

X_train = list(cur)

但是您不能这样做,因为您的列表包含虚假数据。幸运的是,您可以像这样在嵌套列表理解中过滤掉它们:

X_train = [[x for x in r if type(x)==int] for r in cur]

这会构建您的列表列表,但会过滤掉非整数值并将其提供给 numpy.asarray 产量(使用您的样本数据):

[[ 6  1  1  1  2  1  0  0 19]
[ 6 1 1 1 2 1 0 0 14]]

关于python - AttributeError 列表对象没有添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40567103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com