【发布时间】:2017-11-29 18:32:23
【问题描述】:
更新:如果您想获取矩阵,请改用np.cov。
给定一个向量 vec= np.array([1,2,3,4]),为什么 np.var(vec) 返回一个标量而不是数学中的 variance-covariance matrix definiation?
即使我将向量强制为列向量,vec_column = vec[:, np.newaxis]、np.var(vec_columb) 仍然会给出标量而不是通常的定义。
另外,给定一个矩阵a = np.array([[1, 2], [3, 4]]) 或a = np.matrix('1 2; 3 4'),为什么np.var(a) 还给我一个缩放器。
【问题讨论】:
-
尝试采用
array([1, 2, 3, 4])的方差-协方差矩阵没有任何意义。您需要对多个变量进行多次观察以获取方差-协方差矩阵;这看起来像是对一个变量的 4 次观察,或在 4 个变量中的一次观察。 -
嗨,@user2357112,感谢您指出这一点!如果
vec = np.array([[1, 2, 3, 4], [5,6,7,8]])那么np.cov(vec)应该是给定两个观察值的4 个变量之间的相关性? -
这将是 2 个变量的 4 个观测值的协方差矩阵。
-
嗨@user2357112,很抱歉这个愚蠢的问题,我如何区分两种情况?这是设计要求吗?
-
嗨@user2357112,顺便说一句,我刚刚浏览了here,底部示例显示
np.cov([-2.1, -1, 4.3])。
标签: numpy covariance variance