python中从值列表中随机采样,新列表中的元素为2的幂.即32、64、128等



我有一个包含601个排序值的列表,这些值从-15到15不等。即A=[-15,-14.95,-14.90,…,14.95,15]。但是,我想创建一个新的列表,其中的元素从第一个值(-15(开始。新列表中元素的数目应该是2的幂。即32或64或128或256等

New_list=[2^n]个元素。其中n=4或5或6或7等

此外,新列表中的这些值应该来自我的列表,但等距(两个连续值之间的差可能与0.05不同,0.05是原始列表中的距离(。有没有任何方法可以使用一些库函数(最好是Python中的函数(来实现这一点。感谢您的帮助。

这个怎么样:

import numpy as np

def get_sample(arr, power):
num_elements = 2 ** power
spacing = len(arr) // num_elements
stop = spacing * num_elements
sample = arr[:stop:spacing]
return sample

A = np.linspace(-15, 15, 601)
print(get_sample(A, 0))
print(get_sample(A, 1))
print(get_sample(A, 2))
print(get_sample(A, 3))
print(get_sample(A, 4))
print(get_sample(A, 5))

具有以下结果:

[-15.]
[-15.   0.]
[-15.  -7.5    0.     7.5]
[-15. -11.25  -7.5   -3.75   0.     3.75   7.5  11.25]
[-15. -13.15 -11.3   -9.45  -7.6   -5.75  -3.9  -2.05 -0.2  1.65 ...
[-15. -14.1  -13.2  -12.3  -11.4  -10.5   -9.6  -8.7  -7.8 -6.9  ...

最新更新