python程序调优:替换pandas包的Series与DataFrame构造与计算

2023-11-13

在实际部署的时候,使用dataframe的计算效率明显低于numpy,因此在程序中大量运行时避免使用pandas.Seriespandas.DataFrame及频繁的构造,避免、替换的方法如下:

  1. 使用numpy.ndarry替换pandas.Series,在需要使用series的地方都用ndarry数组计算

  2. 使用滑动计算时,使用numpy的如下方法替换:

    np.roll(array, 1)  # 向后搓一位(此时最后面的到最前面)
    np.roll(array, -1)  # 向前搓一位(此时第一位到最末尾,第二位到第一位)
    

    示例:计算增长率

    array = np.array([2.3, 3.2, 2.8, 3.0, 4])
    growth_rate = (array - np.roll(array, 1)) / np.roll(array, 1) * 100
    growth_rate[0] = 0
    print(growth_rate)
    
  3. 使用DataFrame的apply时,替换成for循环的ndarry计算,手动加一个多线程要远比使用pandas快

  4. 使用到DataFrame的多个维度的数据时,使用python dict替代,就是把字典key当成Dataframe的列名称,value当成列的值

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python程序调优:替换pandas包的Series与DataFrame构造与计算 的相关文章

随机推荐

  • 用字节数截取字符串

    昨天去参加中科软的笔试 编程题有一道是关于字符串的 用字节数来截取字符串 如果出现中文被截断了 应该丢去中文的那个字节 如 String a 中aaa国ccc 截取6个字节的字符串 即 中aaa 国 的前一部分 设计一个函数 把截到的中文的
  • 电路设计中发光二极管用作指示灯时的限流电阻如何选择

    在设计电路时经常要用到发光二极管作为指示灯 按照网上所查到的限流电阻计算方法一般得到的限流电阻阻止在几十到一百多欧姆 电源为5V或者3 3V 但是在实际使用中我们一般使用的限流电阻不会这么小 下面是限流电阻的计算公式 R VCC VF IF
  • 表格单元格td设置宽度无效的解决办法

    http zzstudy offcn com archives 11366 在做table页面时 有时对td设置的宽度是无效的 td的宽度始终有内部的内容撑开 可以设置padding 但直接设置width却无效 下面我们来具体看下这个示例
  • 如何更好的理解PFC(功率因数校正)

    功率因数补偿 在上世纪五十年代 已经针对具有感性负载的交流用电器具的电压和电流不同相 图1 从而引起的供电效率低下提出了改进方法 由于感性负载的电流滞后所加电压 由于电压和电流的相位不同使供电线路的负担加重导致供电线路效率下降 这就要求在感
  • redis面试题(转)

    转自 https blog csdn net xiaozhegaa article details 80692017 1 什么是Redis Redis本质上是一个Key Value类型的内存数据库 很像memcached 整个数据库统统加载
  • CSerialPort教程4.3.x (5) - CSerialPort在cmake中的使用

    CSerialPort教程4 3 x 5 CSerialPort在cmake中的使用 环境 系统 windows 10 64位 QT 5 12 9 5 9及以上版本支持cmake构建 MFC vs2008 前言 CSerialPort项目是
  • Vsftp安装与配置

    在linux环境下 使用最多的FTP服务端软件就是Vsftpd 系统用户模式虽然可以控制访问 但是如果用户过多 就会影响服务器系统的管理 对服务器安全造成威胁 而且我们需要的仅仅是可以使用搭建在服务器的FTP服务而已 那么就需要我们设置虚拟
  • Elasticsearch实战(六)---高级搜索 boost控制权重实现搜索结果排名

    Elasticsearch实战 Boost 搜索结果排名 文章目录 Elasticsearch实战 Boost 搜索结果排名 1 Boost权重控制 1 1 准备数据 1 2 默认查询 1 3 boost控制修改权重 2 多Shard Bo
  • 十七、定时任务

    一 为什么需要定时任务 相关业务场景多 例如 1 凌晨一点进行相关数据同步 2 定时发送文章 3 半小时全量推送某些数据给用户 二 单机定时任务 Timer java util Timer是 JDK 1 3 开始就已经支持的一种定时任务的实
  • 多线程面试手撕题

    按序打印 我们提供了一个类 public class Foo public void one print one public void two print two public void three print three 三个不同的线程
  • 【雕爷学编程】Arduino动手做(93)--- 有关OLED屏的两个非常重要的知识点:像素点点阵和坐标系

    37款传感器与执行器的提法 在网络上广泛流传 其实Arduino能够兼容的传感器模块肯定是不止这37种的 鉴于本人手头积累了一些传感器和执行器模块 依照实践出真知 一定要动手做 的理念 以学习和交流为目的 这里准备逐一动手尝试系列实验 不管
  • Redis(一)单实例部署配置

    一 下载 安装 安装环境 CentOS 7 下载地址 http download redis io releases redis 4 0 11 tar gz 下载后通过FTP工具上传到服务器 app redis package 或者使用命令
  • 如何在Windows PowerShell中获取当前的用户名?

    本文翻译自 How do I get the current username in Windows PowerShell 如何在Windows PowerShell中获取当前的用户名 1楼 参考 https stackoom com qu
  • 第一章 Centos7.5介绍与安装部署-centos7.5知识

    一 历史发展 Linux 操作系统的鼻祖Unix 肯 汤姆逊和丹尼斯 里 奇于1969年在贝尔实验室建立了Unix操作系统 一款同时支持多人登录的操作系统 为了开发此系统他们发明了C语言 并于1983年俩人获得了图灵奖 GNU社区的建立 1
  • docker(二)基础命令

    一 docker命令 镜像 1 查看docker版本 docker v docker version decker info 可以查看所有运行容器的镜像数量 运行容器的版本 可以分配的CPU 总的内存等信息 docker的工作目录 var
  • 计算机网络期末复习总结大全(持续更新中)

    计算机网络知识点总结大全 第一章 概述 知识点1 第一次理论课 互联网的两个基本特点 联通性和资源共享 互联网 多个网络通过一些路由器相互连接起来 构成一个覆盖范围更大的计算机网络 即互联网 互联网不等于互连网 1969年ARPANET诞生
  • robot framework 使用四:分层设计和截图以及注意事项

    再说一下目前的主要环境信息和版本 操作系统 win7 64位 python版本 2 7 6 RIDE版本 1 2 3 selenium2library 1 5 0 selenium 2 40 0 pip 1 5 4 setuptools 0
  • 数值计算笔记之数值积分(一)

    目录 0 引言 一 数值积分的积分思想 1 中矩形公式 2 梯形公式 3 辛普森公式 二 求积公式的余项和代数精度 三 插值型求积公式 四 牛顿 柯特斯公式 N C公式 五 复化求积法 1 复化梯形公式 2 复化辛普森公式 要求 n 为偶数
  • 小米解bl锁跳过168小时_xiaomi redmi 红米秒解BL工具分享支持小米红米机型秒解BL跳过168小时

    目前小米的新机 官方风控都默认绑定7天也就是168小时才能解锁BL 部分账号需要绑定15天才能满足条件 导致很多爱玩机的小伙伴被拒门外 并不是所有人都愿意等待官方解锁时候 而跳过168小时解锁 也成为了很多小伙伴希望的事情 本工具来自ROM
  • python程序调优:替换pandas包的Series与DataFrame构造与计算

    在实际部署的时候 使用dataframe的计算效率明显低于numpy 因此在程序中大量运行时避免使用pandas Series与pandas DataFrame及频繁的构造 避免 替换的方法如下 使用numpy ndarry替换pandas