首页 > 解决方案 > 通过在numpy中均匀间距选择相同长度的子数组

问题描述

我是 python 和 stackoverflow 的新手,我正在研究一个处理手动创建的不同长度数组的项目。

path = '/home/Documents/Noise'
files = glob.glob(path + '/*.txt')
data_noise = []
for file in files:
    df = pd.read_csv(file, delimiter=',', header=None)
    df = df.values
    m,n = df.shape
    df = np.reshape(df,m)
    data_noise.append(df)

我创建了一个列表data_noise来存储 numpy 数组,每个数组都有不同的长度m。我想从每个数组中选择子数组,使它们具有相同的长度,例如 100。但是我不想选择每个数组中的前 100 个元素或最后 100 个元素,而是希望在每个数组中均匀分布和选择。

例如,对于长度为 300 的数组,我需要由 0,3,6,9,... 索引的元素,而对于长度为 500 的数组,我需要由 0,5,10,15,... 索引的元素

如何修改我的代码来做到这一点?

标签: pythonarraysnumpy

解决方案


它不是 numpy,但通常 Python 应该可以。

distance = 100 / m
sub_list = df[0::distance]

只要您添加一些检查并可能四舍五入。


推荐阅读