gpt4 book ai didi

python - 无法正确索引 NUMPY 数组的列表

转载 作者:太空宇宙 更新时间:2023-11-04 08:14:08 25 4
gpt4 key购买 nike

我有一个大数组列表。每个数组都包含数据。我还有另一个平均数组,其中每一行包含每个数据数组的平均值。对于数据数组中的每一行,我想减去该行的平均值。下面显示了我正在尝试的一个较小示例:

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])

没有成功。我想知道我是否正确地处理了这个问题。

最佳答案

当然,更好的做法是不使用数组列表,而是使用更高维的数组。在你的情况下:

>>> data = np.array(data)
>>> data.shape
(3L, 2L, 6L)
>>> avgs.shape
(3L, 6L)
>>> data - avgs[:, None, :]
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 ]],

[[-0.017 , -0.0235, -0.024 , -0.018 , -0.016 , -0.017 ],
[ 0.017 , 0.0235, 0.024 , 0.018 , 0.016 , 0.017 ]],

[[-0.072 , -0.091 , -0.0915, -0.076 , -0.0845, -0.0655],
[ 0.072 , 0.091 , 0.0915, 0.076 , 0.0845, 0.0655]]])

关于python - 无法正确索引 NUMPY 数组的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17532096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com