- 博客(15)
- 资源 (8)
- 收藏
- 关注
原创 多进程
Python中多进程主要解决计算密集型性能优化问题,因为它可以真正利用多核CPU资源。Python提供了非常好用的多进程包multiprocessing, 它提供了Process、Queue、Pipe、Lock等组件。总的来讲多进程API和多线程API使用起来比较类似。1. Process创建进程的类:Process([group [, target [, name [, args [, kwarg
2016-11-30 12:13:43 516
原创 ctypes
你可以将项目的某些关键模块用c来写,然后使用ctypes包导入python中使用。1. 导入自定义C代码http://stackoverflow.com/a/5082294/49029002. 教程https://docs.python.org/3/library/ctypes.html
2016-11-27 16:13:34 399
原创 时间日期相关
统计代码片的运行时间使用time.clock()函数。 On Windows, this function returns wall-clock seconds elapsed since the first call to this function, as a floating point number, based on the Win32 function QueryPerformanc
2016-11-27 13:23:00 278
原创 函数返回值缓存
1. 简介函数返回值缓存是优化一个函数的常用手段。我们可以将函数、输入参数、返回值全部保存起来,当下次以同样的参数调用这个函数时,直接使用存储的结果作为返回(不需要重新计算)。这种方法是有代价的,我们实际是在用内存空间换取运行时间。如果所需要的存储空间不是很大的话,还是非常值得的。2. 使用场景这种优化方法的典型使用场景是在处理固定参数的函数被重复调用时。这样做可以确保每次函数被调用时,直接返回缓存
2016-11-27 00:02:32 2983
原创 性能分析器cProfile、line_profiler、memory_profiler
性能分析器主要有两个模块:cProfile和line_profilercProfile是python内置包,它主要用来统计函数调用以及每个函数所占的cpu时间。line_profiler可以帮你一行一行分析函数性能。1. cProfile首先你需要运行分析器,生成结果;然后你需要对结果进行各种格式化分析第一步你可以通过cProfile.run()方法或者cProfile.runctx()方法
2016-11-26 14:21:39 5939 1
原创 Python性能分析概述
性能分析有两种:基于事件的性能分析和统计式性能分析。基于事件的性能分析也称轨迹性能分析器(tracing profiler),是通过收集程序执行过程中的具体事件进行工作的。它会产生大量数据,监听的时间越多,数据量越大。这导致它们不太实用,在性能分析时不能作为首选;但是当其它性能分析方法不够用或者不够精确时,它可以作为最后的选择。Code Exampleimport profileimport sy
2016-11-25 22:40:33 520
原创 简单网络爬取
使用request库实现:import requestsurl = ''headers = { 'Referer': '', 'Accept-Language': '', 'Accept-Encoding': '', 'Host': '', 'cookies': '', ... }form_data = { # 表单数据(post下可能
2016-11-25 18:21:57 525
原创 soup.find_all()用法
find_all() 1. 查找标签 soup.find_all('tag') 2. 查找文本 soup.find_all(text='text') 3. 根据id查找 soup.find_all(id='tag id') 4. 使用正则 soup.find_all(text=re.compile('your re')), soup.find_all(id=re.compile('your
2016-11-25 16:20:40 32029
原创 用BeautifulSoup解析html表格
假设我们网页上有如下表格:我们要用bs4来解析它,来获得想要的字段:Code Example:from bs4 import BeautifulSouphtml = """<table> <tr> <td>船名</td> <td>航次</td> <td>提单号</td> <td>箱号</td> <td>报关单号
2016-11-25 11:19:27 30840 3
原创 根据xpath获得html元素text
使用lxml库可以解析xpath,用BeautifulSoup不可以:Code Example (Python 3):from lxml import etreeimport iohtml = "Your html content."html_parser = etree.HTMLParser()tree = etree.parse(io.StringIO(html), html_parser
2016-11-24 17:39:42 2637
转载 The differences between Python 2 and Python 3
http://sebastianraschka.com/Articles/2014_python_2_3_key_diff.html
2016-11-11 13:46:56 304
原创 数据读取与保存
1. 概览Spark支持以下三类常见的数据源:文件格式与文件系统: 对于存储在本地文件系统或分布式文件系统(比如 NFS、HDFS、Amazon S3 等)中的文件格式,包括文本文件、JSON、SequenceFile,以及 protocol buffer,Saprk都支持。结构化数据源: 这里主要指Saprk SQL支持的包括JSON,Apache Hive在内的结构化数据源。数据库,键
2016-11-08 15:51:14 1578
原创 键值对操作
键值对 RDD 通常用来进行聚合计算。我们一般要先通过一些初始 ETL(抽取、转化、装载)操作来将数据转化为键值对形式。键值对 RDD 提供了一些新的操作接口(比如统计每个产品的评论,将数据中键相同的分为一组,将两个不同的 RDD 进行分组合并等)。1. 动机Spark 为包含键值对类型的 RDD 提供了一些专有的操作。这些 RDD 被称为 pair RDD 。PairRDD 是很多程序的构成要素,
2016-11-05 01:08:25 15324
原创 Git/Github工作流 (workflow)
1. contribute开源软件工作流这个工作流适合开发维护开源软件,它依赖于github的Fork功能。将 GitHub 开源Repo Fork 到 你的远程Repo将❶的仓库 clone 至本地开发环境在本地环境中创建特性分支对特性分支进行代码修改并进行提交将特性分支 push 到❶的仓库中在 GitHub 上对 Fork 来源仓库发送 Pull Request2. 以部署为中心
2016-11-01 18:39:24 6349
原创 文本分类
文本分类:预处理特征选择 DF (Document Frequency)信息增益 (Information Gain, IG)熵 (Entropy)相对熵 (Relative Entropy)χ² 统计量 (Chi-Square)互信息 (Mutual Information)Robertson & Sparck Jones公式发生比 (Odds)Term Strength性
2016-11-01 12:38:39 10893 1
邻接表存储的图的DFS,BFS遍历
2017-04-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人