numpy.linalg.lstsq rcond参数是否根据描述不起作用?

时间:2018-02-21 12:45:59

标签: python python-3.x numpy

我正在尝试使用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,其中一个答案有一个更新,说明这个方法最近有一些变化。

然后我想问一下其他人是否遇到同样的问题,或者我的线路上是否有拼写错误(或其他我没有想过的东西)。

亲切的问候, 谢谢你的时间。

2 个答案:

答案 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"