如何提高python循环的速度?

2024-04-25 07:07:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大的数据帧,我需要根据不同的情况进行分析,我正在寻找一种方法(很容易)加快进程,如果可能的话。你知道吗

基本上我的代码是这样的(真的,真的简化了)

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), columns=list('ABCD'))

dict_x = {}
for x in range(0, 10):
    dict_y = {}
    for y in range(0, 10):
        for i in range(0, len(df)):
            df.loc[i, 'E'] = ((df.loc[i, 'A'] * df.loc[i, 'B']) * x) + y
        dict_y[y] = df
    dict_x[x] = dict_y

由于场景太多,运行起来需要很长时间。每个场景都独立于其他场景。有没有办法提高速度?比如让python能够同时使用多个核心/分析多个场景,或者其他什么

我看了一下多处理模块,但不明白如何应用它。我对Python还很陌生,所以我可能缺少一些基本的东西。你知道吗

****编辑**:更新的代码示例,希望更容易理解我想要实现的目标。由于系统上需要的传感器和计算的数量,实际的代码要长得多,而且一个月内每分钟都有数据。你知道吗


Tags: 数据方法代码inimportdfforas
1条回答
网友
1楼 · 发布于 2024-04-25 07:07:03

你可以做两件事:

首先,矢量化:使用numpy库进行循环乘法/加法和其他数学运算。这将使您的时间减少1000倍(可能会更大)

您可以处理的另一个领域是相互独立的数据并行处理。请参阅多线程和多处理文档。你知道吗

相关问题 更多 >

    热门问题