python中的一些小trick

2023-11-09

1. set用处

个人之前一直没怎么用过set,直到今天我在写一段代码的时候发现in关键字和set对象简直天生一对。

a = list(...)
if b in a:
    ...

上面这段代码相信大家都写过,但如果将list对象转换成为set,那么代码速度将大大提升。本质上set和dict都是用散列表方式存储,学过数据结构的我们知道给一个数/字符(串)对象,可以通过哈希函数快速计算这个对象对应存储的index。正因如此,在判断b是否在a里的时候,在O(1)时间内就可以完成判断,而对于list而言则需要去遍历整个list。
深入考虑下,创建set的时候也需要计算index的时间,但如果上面的判断需要执行多次,那么set无非是一个很nice的选择。

2. pandas

2.1 read_csv的dtype

pd.read_csv()大家都用过吧,最好指名dtype字段,好处多多。
首先,你不指明,python肯定会自己来判断的,这样肯定慢。同时,很多时候字段里混杂着其他对象,例如int里面混搭了个str,这样读的时候会将这个字段置为object,肯定慢不说,后面处理必然会出bug,还得去调,倒不如直接指明了dtype字段。
在机器学习中,存储1,0这种label的完全可以用int8类型。

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

python中的一些小trick 的相关文章

随机推荐

  • 分区统计算法实现(C++ GDAL)

    Arcgis和QGIS都有分区统计工具 geopanda库也有相关函数 但无法满足我们课题组的需求 其中Arcgis只能输出一张表格 还需要进行连接 QGIS只能输出至新shp文件 geopandas计算速度相比慢了点 我们课题组需要对上千
  • MFC ListBox Control用法

    1添加数据 声明控件变量的类别为Control 变量类型为CListBox 变量名为m ListBox Content m ListBox Content AddString T 123 m ListBox Content AddStrin
  • 2.7 const 、指向类成员

    Const 1 const修饰变量的时候 初始化只能在初始化列表和类内 2 const修饰类内成员函数的时候 该成员函数不能修改类内的变量 除非变量有mutable修饰 3 const修饰一个对象 该对象叫做常对象 且只能调用const成员
  • arm-linux—gcc如何下载安装

    ubuntu下交叉编译环境构建 arm linux gcc 4 4 3 20100728 tar gz 1 下载arm linux gcc 4 4 3 20100728 tar gz到任意的目录下 arm linux gcc 4 4 3 2
  • docker 修改镜像和容器的存放路径

    docker info 查看docker的存储等相关信息 将路径修改至挂载磁盘中 前提 磁盘已挂载成功 方法一 1 停止docker 服务 service docker stop 2 备份数据到新的存放路径 cp r var lib doc
  • C++算法之深度优先搜索算法详解

    1 深度优先搜索算法 深度优先搜索是一种在开发爬虫早期使用较多的方法 它的目的是要达到被搜索结构的叶结点 即那些不包含任何超链的HTML文件 在一个HTML文件中 当一个超链被选择后 被链接的HTML文件将执行深度优先搜索 即在搜索其余的超
  • 1、hilens虚拟docker中-ros程序编译说明

    该文档主要用于在ubuntu机子上面编译ros库 当编译成功后 将整个文件夹的库拷贝至HiLens Kit 上面进行运行 这里注意 不能使用windows10的WSL 进行操作 在执行如下指令前 请确保ubuntu上面的docker能够正常
  • 深度全解卷积神经网络(附论文)

    第一章 引言 一 本文动机 过去几年 计算机视觉研究主要集中在卷积神经网络上 通常简称为 ConvNet 或 CNN 在大量诸如分类和回归任务上已经实现了目前为止最佳的表现 尽管这些方法的历史可以追溯到多年前 但相对而言 对这些方法的理论理
  • 二进制中1的个数

    来源 我是码农 转载请保留出处和链接 本文链接 http www 54manong com id 1231 题目描述 输入一个整数 输出该数二进制表示中1的个数 其中负数用补码表示 时间限制 1秒 空间限制 32768K 直接上代码吧 in
  • 使用ab对tornado进行压力测试

    ab使用命令 ab c 20 n 1000 http localhost 8000 c 并发数 n 请求总数 测试环境 1G内存 单CPU单核 虚拟机ubuntu 测试结果 Server Software TornadoServer 5 0
  • 单变量线性回归(Linear Regression with One Variable)

    声明 本文来源于该部分为斯坦福大学 2014 机器学习教程整理对应的笔记 1 1 模型表示 我们的第一个学习算法是线性回归算法 在这段视频中 你会看到这个算法的概况 更 重要的是你将会了解监督学习过程完整的流程 让我们通过一个例子来开始 这
  • 电商峰值系统架构设计

    1 1 系统架构设计目录 摘要 双11来临之际 程序员 以 电商峰值系统架构设计 为主题 力邀京东 当当 小米 1号店 海尔商城 唯品会 蘑菇街 麦包包等电商企业 及商派 基调网络等服务公司 分享电商峰值系统架构设计的最佳技术实践 自200
  • vscode远程控制Ubuntu(remote -ssh)

    我以往做嵌入式 一般都要在Ubuntu下进行开发 进行文件传输的时候 又要回到windows下进行操作 来回操作两台电脑 设备 实在有些麻烦 不过VScode下有个插件remote ssh 可以远程访问其他带ssh的设备 下面对该插件的安装
  • [进阶]Java:static:应用知识-代码块

    代码块概述 代码块是类的5大成分之一 成员变量 构造器 方法 代码块 内部类 定义在类中方法外 在Java类中 使用 括起来的代码被成为代码块 代码块分为 1 静态代码块 格式 static 特点 需要通过static关键字修饰 随着类的加
  • delete与注入逻辑

    即使百般不顺仍期望万事顺意 Mysql注入 Delete基本使用 DELETE关联删除 注入删除 Delete基本使用 1 删除指定的用户 DELETE FROM users where uname hxt 2 删除所有记录 DELETE
  • spring boot中yml配置文件里横线的意思

    想要在yml配置文件中增加集合类型属性的话 需要用横线 进行分割 例如
  • 云安全技术——搭建VPN

    目录 二 VPN简介 三 规划实训环境和网络拓扑 配置VPN服务器 五 VPN网络客户端的配置 六 远程访问VPN的检测 二 VPN简介 VPN Virtual Private Network 是一种可以在公共网络上建立安全连接的技术 VP
  • cv2.threshold() 阈值:使用Python,OpenCV进行简单的图像分割

    图像分割有多种形式 聚类 压缩 边缘检测 区域增长 图分区 分水岭等等 Clustering Compression Edge detection Region growing Graph partitioning Watershed Th
  • table2excel 导出真分页数据如何处理1

    table2excel 导出真分页数据如何处理 首先导入js div class ui edit buttons div
  • python中的一些小trick

    1 set用处 个人之前一直没怎么用过set 直到今天我在写一段代码的时候发现in关键字和set对象简直天生一对 a list if b in a 上面这段代码相信大家都写过 但如果将list对象转换成为set 那么代码速度将大大提升 本质