簡體   English   中英

數組欠采樣Python

[英]Array undersampling Python

我有許多不同長度的數組,而我想為這些數組設置一個固定長度,比如說100個樣本。 這些數組包含時間序列,在減小數組大小的同時,我不想失去這些序列的形狀。 我想我在這里需要的是欠采樣算法。 是否有一種簡單的方法來減少數組中的樣本數量,使其中一些值像平均值一樣?

謝謝

如果您使用具有生成的隨機索引的切片,並且保留原始數組(或僅保留其形狀以減少內存使用):

import numpy as np
input_data = somearray
shape = input_data.shape
n_samples= 100
inds = np.random.randint(0,shape[0], size=n_samples)
sub_samples = input_data[inds]

這是一個沒有numpy的小腳本。 即使所需的長度大於數組的長度,也可以保持形狀。

from math import floor

def sample(input, count):
    output = []
    sample_size = float(len(input)) / count
    for i in range(count):
        output.append(input[int(floor(i * sample_size))])
    return output

這是尼克·弗林漢姆(Nick Fellingham)回答的簡短版本。

from math import floor
def sample(input,count):
    ss=float(len(input))/count
    return [ input[int(floor(i*ss))] for i in range(count) ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM