月度归档: 2024 年 5 月

  • linux查看监听IP端口

    netstat -lpn -4 -6

    Views: 0

  • Python数据等比连续抽样算法

    numpy里面自带了几种抽样算法,但都是随机抽样,我这里要做的是等比连续抽样,就是对原始数据从前到后按固定的间隔固定的顺序去抽样数据。
    方法一:
    把列表分成n个子组,从每个子组中再抽取一个数作为样本

    def evenly_divide_list(lst, num_groups):
        """按顺序分隔列表为指定数量的子组
        Args:
            lst (list): 列表
            num_groups (int): 分隔次数
        Returns:
            list: 返回子列表的集合
        """
        quotient, remainder = divmod(len(lst), num_groups)
        group_sizes = [quotient] * num_groups
        for i in range(remainder):
            group_sizes[i] += 1
        groups = []
        i = 0
        for size in group_sizes:
            groups.append(lst[i:i + size])
            i += size
        return groups
    data = [1, 2, 4, 5]
    count = 3
    sample_group = evenly_divide_list(data, count)
    for i in range(len(sample_group)):
            print(sample_group[i][0])
    

    方法二:
    对列表索引分成固定的间隔然后进行进行四舍五入

    def extract_elements(lst, num_elements):
        """按顺序均匀抽样元素
        Args:
            lst (list): 列表
            num_groups (int): 抽样次数
        Returns:
            list: 返回抽样元素的集合
        """
        if num_elements > len(lst):
            return lst
        step = len(lst) / num_elements
        return [lst[round(i * step)] for i in range(num_elements)]
    data = [1, 2, 4, 5]
    count = 3
    sample_group = extract_elements(data, count)
    for i in range(len(sample_group)):
            print(sample_group[i])
    

    第一种方法是把不能整分的元素全部加到最前面几个组中,这样前面的组就比后面的组抽样间隔更大
    第二种方法则是把不能等分的元素按四舍五入法分散在不同的段中,这种方法显然抽样更均匀,而且方法一多了一个数组切分过程,算法复杂度更大,所以推荐用方法二。

    Views: 4

  • 正态分布及Python用法

    方差和标准差都是用来反映样本差异大小的
    方差的计算公式:

    标准差的计算公式:
    标准差就是方差的开平方,求方差的目的就是为了得到标准差,方差是求标准差过程的中间值。数学符号是:σ
    正态分布的计算公式:

    其中只有两个变量,一个是中间值,也就是总体的平均值,样本均数,总值均值,用mean表示,数学符号是μ。另一个值就是方差(这里用方差不用标准差应该只是计算方便),数学符号是

    Python用numpy生成符合正态分布的随机数:
    random.normal(loc=0.0, scale=1.0, size=None)
    loc就是中间值,scale是标准差,szie是数据结构,如果整数就是生成几条数据,如果元组就是就数组的维数

    Views: 27

  • Centos7安装Python12

    centos7自带的gcc和openssl版本过低无法成功编译python3.12,所以需要另外安装gcc11和编译openssl1.11。

    Views: 14

  • LVM扩容swap分区

    swapoff -a
    lvresize /dev/pve/swap -L 32G
    mkswap /dev/pve/swap
    swapon -a
    

    新建swap分区

    lvcreate ubuntu-vg -L 16G -n swap
    mkswap /dev/ubuntu-vg/swap
    echo "/dev/ubuntu-vg/swap swap swap defaults 0 0" >> /etc/fstab
    swapon -a
    

    Views: 53