【问题标题】:why numpy variance of a matrix or vector gives a scalar为什么矩阵或向量的numpy方差给出标量
【发布时间】: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


【解决方案1】:

使用np.cov() 作为协方差矩阵。请参阅文档 varcov

【讨论】:

  • 尝试使用np.cov(vec) 只会给你array(1.6666666666666665)。试图获取这个输入的协方差矩阵是没有意义的。
猜你喜欢
  • 1970-01-01
  • 2016-04-09
  • 1970-01-01
  • 2017-11-18
  • 2016-02-28
  • 1970-01-01
  • 1970-01-01
  • 2013-03-22
  • 1970-01-01
相关资源
最近更新 更多