在工作中遇到一个需求,需要用Python脚本读取一个13G的文件,把每行的记录写入redis。由于机器的内存只有8G,所以不能一次将磁盘上的文件全部读入内存,需要一行一行读取文件。Python按行读取文件主要是使用file.readline方法或者利用file对象的迭代器性质,而file.readlines方法则是一次把所有内容从磁盘读入内存。当内存足够时,file.readlines方法显然会更快,因为磁盘I/O次数更少。下面给出了三种遍历文件每行的方式
系统 2019-09-27 17:56:36 2271
生成器在Python中,使用了yield的函数被称为生成器(generator)。生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到yield时函数会暂停并保存当前所有的运行信息,返回yield的值,并在下一次执行next()方法时从当前位置继续运行。调用一个生成器函数,返回的是一个迭代器对象。列表推导式空间开销大占用内存耗时大,.生成器保存的是算法,而列表保存的计算后的内容,所以同样内容的
系统 2019-09-27 17:56:08 2271
摘要时间序列(timeseries)数据是一种重要的结构化数据形式,应用于多个领域,包括金融学、经济学、生态学、神经科学、物理学等。在多个时间点观察或测量到的任何事物都可以形成一段时间序列。在进行时间序列问题分析时,通常需要将字符串和datetime类型相互转换,本文分享他们之间相互转换的集中常用方法(主要用到的库有datetime、pandas以及dateutil)。(一)datetime->strdatetime类型转成str一般常用的有两种方法:st
系统 2019-09-27 17:56:03 2271
本章包括:1、了解卷积神经网络(convnets)2、使用数据增强来减轻过度拟合3、使用预训练的convnet进行特征提取4、微调预训练的信号5、可视化回馈学习的内容以及他们如何做出分类决策一、引言一个简单的convnet示例。第二章中的密接网络的测试精度为97.8%,而convnet的测试精度为99.3%:我们将错误率降低了68%(相对)。为什么这个简单的convnet比一个紧密连接的模型工作得那么好呢?为了回答这个问题,让我们深入研究conv2d和ma
系统 2019-09-27 17:55:54 2271
image花下猫语:GuidovanRossum是Python的创造者,虽然他现在放弃了“终身仁慈独裁者”的职位,但却成为了指导委员会的五位成员之一,其一举一动依然备受瞩目。近日,他开通了Medium账号,并发表了第一篇文章,透露出要替换Python的核心部件(解析器)的想法。这篇文章分析了当前的pgen解析器的诸多缺陷,并介绍了PEG解析器的优点,令人振奋。这项改造工作仍在进行中,Guido说他还会写更多相关的文章,我们就拭目以待吧。本文原创并首发于公众
系统 2019-09-27 17:55:35 2271
原文链接:https://kuanghy.github.io/2016/04/20/python-cache缓存是一种将定量数据加以保存以备迎合后续请求的处理方式,旨在加快数据的检索速度。在Python的3.2版本中,引入了一个非常优雅的缓存机器,即functool模块中的lru_cache装饰器。lru_cache原型如下:@functools.lru_cache(maxsize=None,typed=False)使用functools模块的lur_ca
系统 2019-09-27 17:53:45 2271
01问题描述这个SQL题来源于自己的Python学习交流群,具体是这样的:用一条SQL语句查询出每门课都大于80的学生姓名和总成绩。02解题思路本人使用Python来解决这个问题,大概的思路如下:首先筛选出课程成绩小于等于80的列(布尔选择)。取这些列的学生姓名的唯一值。这些学生姓名就是不符合条件的,我们反选符合条件的。最后用groupby求和即可完成。03解题代码①通过布尔选择成绩小于等于80的列。data[data['score']<=80]其实通过结
系统 2019-09-27 17:53:43 2271
May19,20192:08PM文件的读写,由内置模块open进行操作和实现文本文件读操作withopen('data.txt')asfile_read:txt=file_read.read()print(txt.strip())文本文件的追加#文件的追加withopen('data.txt','a')asfile_append:file_append.write('\nNicetomeetyou!')文件的重写#文件的重写withopen('data.t
系统 2019-09-27 17:53:40 2271
作者:Vamei出处:http://www.cnblogs.com/vamei欢迎转载,也请保留这段声明。谢谢!Python使用类(class)和对象(object),进行面向对象(object-orientedprogramming,简称OOP)的编程。面向对象的最主要目的是提高程序的重复使用性。我们这么早切入面向对象编程的原因是,Python的整个概念是基于对象的。了解OOP是进一步学习Python的关键。下面是对面向对象的一种理解,基于分类。相近对象
系统 2019-09-27 17:51:09 2271
爬虫即网络爬虫,英文是WebSpider。翻译过来就是网络上爬行的蜘蛛,如果把互联网看作一张大网,那么爬虫就是在大网上爬来爬去的蜘蛛,碰到想要的食物,就把他抓取出来。我们在浏览器中输入一个网址,敲击回车,看到网站的页面信息。这就是浏览器请求了网站的服务器,获取到网络资源。那么,爬虫也相当于模拟浏览器发送请求,获得到HTML代码。HTML代码里通常包含了标签和文字信息,我们就从中提取到我们想要的信息。通常爬虫是从某个网站的某个页面开始,爬取这个页面的内容,找
系统 2019-09-27 17:51:06 2271