在 Python 的 numpy 或 scipy 库中,获取一个小矩阵(比如 3x3)的零空间应该有很简单的方法。
在这方面,MATLAB 可能会更好。举个例子:
A = [1 2 3;
2 3 4;
2 4 6]
rank(A) % rank is 2
null(A, 'r') % ask matlab to be ('r') reasonable about
% its choice of a vector in A's nullspace
最后一个命令的输出结果为:
1
-2
1
看起来 - 这是真的吗? - 在numpy中事情并不是那么简单:
import numpy as np
A = array(([1, 2, 3], [2, 3, 4], [2, 4, 6]))
np.linalg.matrix_rank(A) # ok, getting the rank of a matrix is this esay, even if
# it takes more keystrokes, but how about its null space
从我迄今为止所搜寻到的内容来看,似乎需要先调用svd
分解函数才能获取零空间。
在Python中肯定有更简单的方法。
此外,在matlab中可以这样说:
format rat
为了避免在输出矩阵时盯着长长的小数分数不放。(例如,当格式设置为“rational”时,输出矩阵中的一个条目将看起来像1/2
而不是难看的0.5000000
)Python是否有类似的功能,或者使用Python的任何人都注定要永远看这些小数吗?提前致谢。
np.set_printoptions(precision=2)
将浮点输出的精度设置为 2 位数字。输入help(np.set_printoptions)
查看其他选项。 - unutbu