【发布时间】:2021-01-15 10:13:37
【问题描述】:
我正在努力解决我正在制作的程序,我必须将从循环中获得的值存储在数组中。
我试图做的是创建一个名为 M 的空数组。然后对于在循环中计算的每个新值“a”,我使用命令 M.append(a) 将值 a 添加到数组 M。
问题是,python 说这个错误:'numpy.ndarray' object has no attribute 'append'
我不知道如何解决它。
这是我的代码:
import numpy as np
from matplotlib import pyplot as plt
with open('expFcn0.txt') as f:
M = np.array([])
print(M)
lines = f.readlines()
x = [float(line.split()[0]) for line in lines]
y = [float(line.split()[1]) for line in lines]
for i in range(0,181):
a=np.log(y[i])/x[i]
print(a)
i=i+1
M.append(a)
print(M)
plt.plot(x, y, 'r--')
plt.xlabel('Time')
plt.ylabel('Biomass')
plt.title('Exponential Function')
plt.show()
非常感谢!
【问题讨论】:
-
答案建议使用
numpy.append方法,但附加到 numpy 数组不是一个好习惯。您最好创建一个 python 列表并附加到该列表中。如果您想要结果的 numpy 数组,可以从该列表创建一个 numpy 数组。 -
使用
M = []。列表有追加,数组没有。 -
顺便说一句,如果不是拼写错误,修改索引
i=i+1不起作用,应该避免在 for 循环中使用。
标签: python numpy loops numpy-ndarray