假设我n
二维基质M1, M2, M3, ...
具有相同的尺寸。
是否有一种有效的方法来生成输出矩阵MR
,其中MR
中的每个元素都对应M1, M2, M3, ...
该操作的一个例子如下:
1 4 5 8 2 3 -1 8 2 4.73 3.06 1.53
stdev( 3 9 2, 2 1 0, 0 3 1 ) = 1.53 4.16 1.00
7 1 2 8 3 1 9 5 8 1.00 2.00 3.79
澄清:结果矩阵的左上角元素计算如下:
stdev(1,8,-1) = 4.7258
而左下角的元素计算如下:
stdev(7,8,9) = 1.00
如果不是一次性使用内置运算符来实现这一点,那么还有一种有效的选择吗?
以下是测试矩阵:
a=numpy.array( [[1,4,5],[3,9,2],[7,1,2]])
b=numpy.array( [[8,2,3],[2,1,0],[8,3,1]])
c=numpy.array([[-1,8,2],[0,3,1],[9,5,8]])
答案 0 :(得分:3)
numpy
是你的朋友
import numpy as np
print np.std((a,b,c), axis=0, ddof=1)
提供的矩阵
array([[ 4.72581563, 3.05505046, 1.52752523],
[ 1.52752523, 4.163332 , 1. ],
[ 1. , 2. , 3.7859389 ]])
按预期
答案 1 :(得分:2)
首先将您的数据放入一个数组中:
d = np.dstack((a,b,c))
沿着thrid axies采取std:
np.std(d, 2, ddof=1)