我正在尝试使用numpy(Description)中的最小二乘解。根据网站使用'rcond'参数的新默认值:''要使警告静音并使用新的默认值,使用rcond = None,继续使用旧的行为,使用rcond = -1。''
将rcond参数设置为None:
vector = np.linalg.lstsq(GA, FA, rcond = None)
它给我一个错误:
TypeError: must be real number, not NoneType
当参数被取消或设置为-1时,不会发生这种情况。
我做了一些检查,根据这个post,其中一个答案有一个更新,说明这个方法最近有一些变化。
然后我想问一下其他人是否遇到同样的问题,或者我的线路上是否有拼写错误(或其他我没有想过的东西)。
亲切的问候, 谢谢你的时间。
答案 0 :(得分:1)
你需要NumPy> = 1.14。你用的是哪个版本?
答案 1 :(得分:0)
x = np.array([0, 1, 2, 3])
y = np.array([-1, 0.2, 0.9, 2.1])
A = np.vstack([x, np.ones(len(x))]).T
print(A)
m, c = np.linalg.lstsq(A, y, rcond=1.e-10)[0]
print (m,c)
# rcond must be a float. None as in the documentation
# gives the "TypeError: a float is required"