如何计算Scipy中稀疏矩阵的列的方差?

nic*_*ine 11 python numpy scipy

我有一个大,scipy.sparse.csc_matrix并希望将其正常化.即从每个元素中减去列均值并除以列标准差(std)i.

scipy.sparse.csc_matrix有一个.mean()但是有一种有效的方法来计算方差或标准?

Sic*_*cco 12

您可以使用均值自行计算方差,使用以下公式:

E[X^2] - (E[X])^2
Run Code Online (Sandbox Code Playgroud)

E[X]代表平均值.所以要计算E[X^2]你必须平方csc_matrix然后使用该mean函数.为了让(E[X])^2您只需要mean使用正常输入来平方获得的函数的结果.

  • 为简单起见,对矩阵求平方:`c = matrix.copy(); c.data**= 2`然后`c.mean(0); del c`(只能替换`.data`).但我认为OP听起来错误地说要从所有元素中减去. (3认同)