我有一个奇怪的问题使用numpy.linalg.matrix_rank().
我有一个矩阵A,它有三列和> 100行.A由0和1组成.当我用numpy.linalg.matrix_rank(A)我的时候answer=3,这是正确的.
但是,当我向A添加一个具有相同长度的新列(A现在有四个colunms)时,使用numpy.linalg.matrix_rank(A)I get answer=1,这是没有意义的.新列中的数字为数千.所有数据类型都是float32.
有谁知道问题在哪里?谢谢!
这是一个随机生成的例子.这是一个40*3阵列A.
array([[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., 1.],
[ 0., 0., …