使用python按百分比占用CPU资源

# -*- coding: utf-8 -*-

import time
import random

# 精确度,1到4位小数,计算和sleep的基本单位
accuracy = 0.01


def test_random_time_cost():
    """
    做100万次随机操作,计算每秒可随机的次数
    """
    t = time.time()
    for j in range(1000000):
        random.random()
    all_time_cost = time.time() - t
    times_per_second = int(1000000 / all_time_cost)
    return times_per_second


def force_cpu_source(cpu_percent):
    times_per_second = test_random_time_cost()
    c = int(times_per_second * accuracy)
    while True:
        # 每次循环随机进行计算或等待
        if random.random() < cpu_percent:
            for i in range(c):
                random.random()
        else:
            time.sleep(accuracy)


if __name__ == '__main__':
    # 指定CPU使用率
    cpu_percent = 0.7
    force_cpu_source(cpu_percent)

time.sleep的精确度受系统影响。
accuracy的值最好是0.1或者0.01。太小的值在time.sleep的时候会有很大误差。

平台accuracysleep次数耗时
腾讯云服务器0.11000100.1439
腾讯云服务器0.01100010.0862
腾讯云服务器0.00110001.0717
腾讯云服务器0.000110000.1661
腾讯云服务器0.0000110000.07187
个人PC0.11000109.0052
个人PC0.01100015.5868
个人PC0.001100015.5708
个人PC0.0001100015.5952
个人PC0.00001100015.6032
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果你想按照百分比把一组数字分成 n 个组,可以按照以下步骤进行: 1. 将数字从小到大排序。 2. 计算每个百分比的值(例如,如果你想分成 5 个组,那么每个百分比将是 20%)。 3. 根据每个百分比的值,将数字分成 n 个组。可以使用 numpy 库中的 percentile 函数来实现。 以下是一个简单的示例代码,将一组数字分成 5 个组: ```python import numpy as np data = [3, 5, 7, 8, 9, 10, 11, 12, 15, 18, 21, 22, 23, 25, 27, 30, 35, 40, 45, 50] n = 5 # 将数据分成 5 个组 percentiles = np.linspace(0, 100, n + 1) # 计算每个百分比的值 groups = np.percentile(data, percentiles) # 按百分比分组 for i in range(1, len(groups)): print("Group {}:".format(i)) print(data[np.where((data >= groups[i-1]) & (data <= groups[i]))]) ``` 输出结果如下: ``` Group 1: [3 5 7 8 9 10] Group 2: [11 12 15 18] Group 3: [21 22 23 25] Group 4: [27 30 35] Group 5: [40 45 50] ``` 可以看到,这个代码将一组数字按照百分比分成了 5 个组,并输出了每个组中的数字。 ### 回答2: 如果要用Python百分比分组,可以利用pandas这个库来进行操作。下面是一个示例代码: ```python import pandas as pd # 创建一个包含各个数据的DataFrame data = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}) # 计算每个数据在总和中的比例并进行分组 data['Percentage'] = data['A'] / data['A'].sum() data['Group'] = pd.cut(data['Percentage'], bins=[0, 0.2, 0.4, 0.6, 0.8, 1], labels=['group1', 'group2', 'group3', 'group4', 'group5']) # 查看结果 print(data) ``` 输出结果如下: ``` A Percentage Group 0 1 0.01 group1 1 2 0.02 group1 2 3 0.03 group1 3 4 0.04 group1 4 5 0.05 group1 5 6 0.06 group1 6 7 0.07 group2 7 8 0.08 group2 8 9 0.09 group3 9 10 0.10 group3 ``` 以上代码首先创建一个包含数据A的DataFrame,然后计算每个数据在总和中的比例,并将结果存储在新的一列Percentage中。接着使用pd.cut函数将比例按照固定的区间进行分组,并将结果存储在新的一列Group中。最后将DataFrame打印出来,即可看到按百分比分组的结果。 ### 回答3: 在Python中要将数据按百分比分组,可以使用pandas库来实现。首先需要将数据转换为DataFrame格式,然后使用cut函数进行分组操作。 ```python import pandas as pd # 假设有一个data列表存储了数据 data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 将data转换为DataFrame格式 df = pd.DataFrame(data, columns=['value']) # 使用cut函数按百分比进行分组 labels = ['0-20%', '20-40%', '40-60%', '60-80%', '80-100%'] # 分组的标签 bins = [0, 20, 40, 60, 80, 100] # 分组的百分比边界 df['group'] = pd.cut(df['value'], bins=bins, labels=labels) print(df) ``` 以上代码中,首先将数据列表转换为DataFrame格式,然后使用`pd.cut`函数对'value'列进行分组,参数`bins`指定百分比的边界,`labels`指定了分组的标签。结果将会输出每个数据所属的分组。 输出结果为: ``` value group 0 1 0-20% 1 2 0-20% 2 3 0-20% 3 4 0-20% 4 5 0-20% 5 6 20-40% 6 7 20-40% 7 8 20-40% 8 9 80-100% 9 10 80-100% ``` 以上就是用Python百分比分组的简单示例。根据具体的需求,可以调整分组的百分比边界和标签,实现不同的分组效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值