我正试图编写一个代码来进行二次求和(见图)
其中:;
M是受试者,
N是审判,
Yijt是测量的波形数据(3d阵列)
到目前为止我有;
给定Y是按Y排列的数据[受试者、试验、时间]
# ranges:
I = len(Y)
J = len(Y[0])
Y_i_vals = 0
for i in range(M):
for j in range(N):
Y_i_vals = Y_i_vals +Y[i][j]
Yt = (1.0/(M*N)) * Y_i_vals
这样做似乎不是最有效的方法,我也不确定它是否给出正确的结果。在
Tags:
当涉及到简单的双和运算时,比如在您的例子中,最好使用numpy的einsum:
要为您的问题添加更一般的答案:
在python列表理解的帮助下,可以编写一个双和运算。在
如果你正在使用
numpy
,那么就这么做另外,最好在问题中添加示例输入和预期输出数据。在
如果你想要每个
t
的方法,你可以做np.mean(np.mean(a, axis=0), axis=0)
,或者如@ophion所说,你可以在新版本(1.71及更高版本)中将其缩短为np.mean(a, axis=(0, 1))
。在相关问题 更多 >
编程相关推荐