gpt4 book ai didi

python - 拆分数组 'logarithmically' 中的值/基于另一个数组

转载 作者:行者123 更新时间:2023-12-03 21:49:15 25 4
gpt4 key购买 nike

我有一个二维数组,其中每个元素都是一个傅立叶变换。我想“对数地”分割变换。例如,让我们将这些数组中的一个命名为 a :

a = np.arange(0, 512)

# I want to split a into 'bins' defined by b, below:
b = np.array([0] + [10 * 2**i for i in range(6)]) # [0, 10, 20, 40, 80, 160, 320, 640]

我想做的是使用 np.split ,除了我想根据数组 b 将值拆分为“bins”使得 a 的所有值[0, 10) 之间的值在一个 bin 中,[10, 20) 之间的所有值在另一个 bin 中,依此类推。
我可以在某种复杂的 for 循环中做到这一点:
split_arr = []
for i in range(1, len(b)):
fbin = []
for amp in a:
if (amp >= b[i-1]) and (amp < b[i]):
fbin.append(amp)
split_arr.append(fbin)
我有很多数组要拆分,而且这很丑陋(只是我的意见)。有没有更好的办法?

最佳答案

这是您可以使用的方法,使用 np.split :

np.split(a, np.searchsorted(a,b))
如果您的阵列 a没有排序,在上面的命令之前排序:
a = np.sort(a)
np.searchsortedb 中查找值的位置将插入排序数组 a .换句话说, np.searchsorted找到要拆分阵列的位置。如果您不想要开头的空数组,只需删除 0来自 b .

关于python - 拆分数组 'logarithmically' 中的值/基于另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63349804/

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