1
如果我有一個numpy數組X與X.shape=(m,n)
和第二個列向量y與y.shape=(m,1)
,我怎樣才能計算X的每列的協方差與沒有使用for循環y?我期望的結果是形狀(m,1)
或(1,m)
。協方差與列
如果我有一個numpy數組X與X.shape=(m,n)
和第二個列向量y與y.shape=(m,1)
,我怎樣才能計算X的每列的協方差與沒有使用for循環y?我期望的結果是形狀(m,1)
或(1,m)
。協方差與列
假設輸出,就是要形狀(1,n)
的即標量各爲covariance
操作用於與B
並且因此A
每一列與n
這樣標量結束了n
列,則可以使用此處兩種方法使用covariance formula
。
方法1:用廣播
np.sum((A - A.mean(0))*(B - B.mean(0)),0)/B.size
方法2:用矩陣乘法
np.dot((B - B.mean(0)).T,(A - A.mean(0)))/B.size
你有沒有看np.cov()函數?似乎與矢量相關的矩陣。看看http://docs.scipy.org/doc/numpy/reference/generated/numpy.cov.html – xxyzzy 2015-04-04 14:36:04
是的,但我正在處理文本數據,而np.cov會計算X矩陣中各列之間的協方差,有100000列。這會很慢。 – Elian 2015-04-04 14:41:53
不應該輸出大小爲'1xn'或'nx1'? – Divakar 2015-04-04 14:57:05