我有一个大型数组的列表。每个数组都包含数据。我还有另一个平均数组,其中每一行包含每个数据数组的平均值。对于数据数组中的每一行,我想减去该行的平均值。我试图做的一个较小的例子如下所示:
data = [array([[ 13.964, 13.983, 14.03 , 13.788, 13.771, 13.781],
[ 13.845, 13.854, 13.896, 13.688, 13.657, 13.675]]),
array([[ 14.182, 14.184, 14.223, 14.006, 13.991, 14.001],
[ 14.216, 14.231, 14.271, 14.042, 14.023, 14.035]]),
array([[ 15.717, 15.761, 15.812, 15.488, 15.444, 15.489],
[ 15.861, 15.943, 15.995, 15.64 , 15.613, 15.62 ]])]
avgs = array([[ 13.9045, 13.9185, 13.963 , 13.738 , 13.714 , 13.728 ],
[ 14.199 , 14.2075, 14.247 , 14.024 , 14.007 , 14.018 ],
[ 15.789 , 15.852 , 15.9035, 15.564 , 15.5285, 15.5545]])
我想要产生的是:(这是一个非常简单的示例,每个数组只有两行,但本质上我想从各种数据数组中的每一行中减去数组的平均值。)
subtracted_data = [array([[ 0.0595, 0.0645, 0.067 , 0.05 , 0.057 , 0.053 ],
[-0.0595, -0.0645, -0.067 , -0.05 , -0.057 , -0.053 ]]),
array([[-0.017 , -0.0235, -0.024 , -0.018 , -0.016 , -0.017 ],
[ 0.017 , 0.0235, 0.024 , 0.018 , 0.016 , 0.017 ]])
array([[-0.072 , -0.091 , -0.0915, -0.076 , -0.0845, -0.0655],
[ 0.072 , 0.091 , 0.0915, 0.076 , 0.0845, 0.0655]])]
我试图这样做:
subtracted_data = [[]]*len(data)
for i in range(len(data)):
for j in data[i]:
subtracted_data[i].append(data[i][j] - avgs[i])
这没有成功。我想知道我是否正确地处理了这个问题。