gpt4 book ai didi

python - 如何在不使用for循环的情况下对python中的数组进行下采样

转载 作者:行者123 更新时间:2023-11-28 21:33:14 26 4
gpt4 key购买 nike

有没有一种'pythonic'方法可以在不使用多个for循环的情况下干净地进行下采样?

下面的示例是我希望摆脱的 for 循环类型。

最小工作示例:

import numpy as np
unsampled_array = [1,3,5,7,9,11,13,15,17,19]
number_of_samples = 7
downsampled_array = []
downsampling_indices = np.linspace(0, len(unsampled_array)-1, number_of_samples).round()
for index in downsampling_indices:
downsampled_array.append(unsampled_array[int(index)])
print(downsampled_array)

结果:

>>> [ 1  5  7  9 13 17 19]

最佳答案

如果您想要“真正的”下采样,其中每个值都是 k 值的平均值,您可以使用

unsampled_array.reshape(-1, k).mean(1) 

确保 unsampled_array 是 np.array。在你的情况下,k=2。这会给你:

[ 2. 6. 10. 14. 18.]

*更新:如果您只想获取每 k 个项目的第一个项目,您可以使用以下代码:

unsampled_array.reshape(-1, 2)[:, 0]

看看这个图:

enter image description here

关于python - 如何在不使用for循环的情况下对python中的数组进行下采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54858623/

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