
Python
文章平均质量分 54
积微成著
每一个你不满意的现在,都有一个你没有努力的曾经。
展开
-
【Python那些事儿】range()和xrange()
无论是range()还是xrange()都是Python里的内置函数。这个两个内置函数最常用在for循环中。range()和xrange() 在Python 2里是两种不同的实现。 但是在Python 3里,range()这种实现被移除了;保留了xrange()的实现,且将xrange()重新命名成range()。首先,我们来看Python 2里range()。它是一个内置函数,这个函数用于创原创 2016-10-18 11:17:06 · 823 阅读 · 0 评论 -
【Python那些事儿】主成分分析PCA
主成分分析PCA(Principal Component Analysis):无监督方法保留数据分布PCA通过以下步骤来完成目标:将数据集标准化成为均值为0;找出数据集的相关矩阵和单位标准偏差值;将相关矩阵分解为特征向量和特征值;基于降序的特征值选择Top-N特征向量;投射输入的特征向量矩阵到一个新的子空间。对于一维数据,可用方差来衡量数据的分布或散步情况。在多维的场景里,我们很容原创 2017-06-30 11:26:54 · 4620 阅读 · 0 评论 -
Python修饰器模式
无论何时,在对一个对象添加额外功能时,都有以下可选方法:如果合理,直接将功能添加到对象所属的类;使用组合;使用继承。设计模式为我们提供了第四种可选方法,以支持动态地(运行时)扩展一个对象的功能,这种方法就是修饰器(Decorator)。修饰器模式能够以透明的方式(不影响其他对象)动态地将功能添加到一个对象中。在很多编程语言里,使用继承来实现修饰器模式。在Python中,可以使用内置的修饰原创 2017-06-04 16:54:21 · 1521 阅读 · 0 评论 -
【Python那些事儿】准备数据——训练集和测试集
准备工作在把数据用于机器学习的算法之前,必须认真准备数据。提供类别分布一致的训练集和测试集对于成功的分类模型是十分重要的。继续使用iris数据集,把80%的记录归入训练集,剩下的20%作为测试集。操作方法#导入必要的库from sklearn.datasets import load_irisimport numpy as npfrom sklearn.cross_validation imp原创 2017-06-30 21:12:21 · 24741 阅读 · 2 评论 -
【Python那些事儿】为多变量数据绘制散点图
准备工作在分析多变量数据时,我们更关注这些变量之间是否存在某些联系。无相关强相关简单关联多元(非简单)关联本实验使用iris数据集。iris数据集有150个实例(3类鸢尾花各50条记录)和4种属性(花萼长度、宽度和花瓣长度、宽度)。操作方法#导入相关库from sklearn.datasets import load_irisimport numpy as npimport matp原创 2017-06-12 16:46:19 · 15687 阅读 · 0 评论 -
【Python那些事儿】用图表分析单变量数据
准备工作我们采用EDA(探索性数据分析)方式对数据集进行探索,并通过可视化进行展示。这里使用pyplot来绘制图形进行数据可视化,pyplot是matplotlib绘图库的状态机接口。 数据集:1946,411947,231948,161949,281950,201951,111952,191953,141954,391955,321956,1957,141958,195原创 2017-06-09 21:01:40 · 1458 阅读 · 0 评论 -
排序算法的Python实现
冒泡排序def bubble_sort(l): n = len(l) for i in range(n): for j in range(i+1, n): if l[i] > l[j]: l[i], l[j] = l[j], l[i] return l插入排序def insert_sort(l):原创 2017-07-04 14:34:59 · 409 阅读 · 0 评论 -
Python分割训练集和测试集
数据集介绍使用数据集Wine,来自UCI。包括178条样本,13个特征。import pandas as pdimport numpy as npdf_wine = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data', header=None)df_wine.columns原创 2017-07-13 15:11:07 · 20503 阅读 · 0 评论 -
Python的list、tuple、set、dictionary操作总结
listPython的list是最灵活的数据类型.由一系列的放在方括号“[]”里的,且用逗号隔开的values组成。列表内的values不要求是同种类型。 tupletuple是由一系列的不可变的对象组成,类似于list。不同于list的地方: values不可变;list:方括号“[]”,tuple:圆括号“()”。 set无序(unordered)不重复(unique)原创 2017-07-04 17:38:22 · 1174 阅读 · 0 评论 -
特征缩放
特征缩放(Feature Scaling)特征缩放是数据预处理过程中时长被忽略的关键的一步。决策树和随机森林是机器学习算法中为数不多的两个不需要进行特征缩放的算法。大部分机器学习算法和优化算法在进行特征缩放后的数据上能够有刚好的表现。在多指标评价体系中,由于各评价指标的性质不同,通常具有不同的量纲和数量级。当各指标间的水平相差很大时,如果直接用原始指标值进行分析,就会突出数值较高的指标在综合原创 2017-07-13 20:15:07 · 1854 阅读 · 0 评论 -
Python修改数据中的字符串数据列
有时候,我们想修改数据中的字符串数据列。下面的方法供参考:str.extract()str.upper()str.lower()str.len()str.split()str.replace()参考实例:>>>import pandas as pd>>>df = pd.DataFrame([['RAVENA COEYMANS SELKIRK CENTRAL SCHOOL DISTR原创 2017-07-28 13:22:20 · 2471 阅读 · 0 评论 -
Python数据合并
在用Python进行数据合并时,可以使用concat函数。import pandas as pddata = {'low':['abc', 'def', 'ghi', 'jkl', 'mno'], 'upper':['ABC', 'DEF', 'GHI', 'JKL', 'MNO']}#创建数据df = pd.DataFrame(data)df1 = df[0:2]#将df分割为两部原创 2017-08-03 13:30:22 · 1033 阅读 · 0 评论 -
Python处理缺失值
首先创建具有缺失值NaN(Not A Number)的CSV(comma-separated values)文件:import pandas as pdfrom io import StringIOcsv_data = '''A,B,C,D1.0,2.0,3.0,4.05.0,6.0,,8.00.0,11.0,12.0,'''# If you are using Python 2.7,原创 2017-07-13 14:46:16 · 20191 阅读 · 1 评论 -
Python整理类别型数值
整理类别型数值(Categorical Data)创建数据:import pandas as pddf = pd.DataFrame([['green', 'M', 10.1, 'class1'],['red', 'L', 13.5, 'class2'],['blue', 'XL', 15.3, 'class1']])df.columns = ['color', 'size', 'pric原创 2017-07-28 11:01:08 · 1504 阅读 · 0 评论 -
【Python那些事儿】判断文件/文件夹是否存在的方法
通常在读写文件/文件夹之前要判断其是否存在,不然程序可能会出错。所以,在做任何操作之前,最好先判断文件/文件夹是否存在。 判断方法:os模块try语句pathlib模块os模块os.path.exists(path):判断文件/文件夹是否存在os.path.isdir(path):判断文件夹是否存在os.path.isfile(path):判断文件是否存在os.access(pat原创 2017-09-04 13:07:16 · 4664 阅读 · 0 评论 -
【Python那些事儿】数据放缩
讨论如何对数据进行放缩:放缩是一种非常重要的数据转换手段;对数据进行放缩之后,能够控制数值的范围;数据集里有很多列的时候,数据较大的列对于其他列更有优势,必须对数据进行放缩以避免这种干扰。操作方法缩放到[0, 1]区间import numpy as npnp.random.seed(10)x = [np.random.randomint(10, 25)*1.0 for i in rang原创 2017-06-29 21:00:45 · 7173 阅读 · 2 评论 -
【Python那些事儿】使用箱线图
在概要统计里,箱线图是一种好用的查看统计信息的工具。高效表达数据的千分位数、异常值点、总体结构;标出水平中位线。指明数据的位置;箱体扩展到四分位范围,用来衡量数据的分布;一系列的虚线从中间的箱体或横或纵伸展,表明数据的尾部分布。操作方法from sklearn.datasets import load_irisimport matplotlib.pyplot as plt#加载数据da原创 2017-06-29 15:56:12 · 3944 阅读 · 0 评论 -
Python适配器模式
适配器模式(Adapter Pattern)通常情况下,原系统的代码要么无法获取——如库等、要么难以冒险重构——如运行5年以上的老旧系统牵一发而动全身。在设计中使用适配器模式,可以保证在不修改原系统代码的前提下,实现新需求与原系统的对接。适配器模式是一种结构型设计模式,实现两个不兼容接口之间的兼容。以保证程序符合开放/封闭原则,保持新老代码间的兼容性。结构型设计模式处理一个系统中不同实体(类和原创 2017-06-02 20:29:02 · 1140 阅读 · 1 评论 -
【Python那些事儿】Python字符串连接的5种方法
总结了一下Python字符串连接的5种方法:加号 很多语言里面是用加号连接两个字符串,Python里面也是如此直接用 “+” 来连接两个字符串:print 'Pyt' + 'hon'结果:Python逗号 如果两个字符串用“逗号”隔开,那么这两个字符串将被连接,但是,字符串之间会多出一个空格:print 'Pyt','hon'结果:Pyt hon直接连接 Python 独有的,只要把两原创 2016-10-19 15:26:00 · 7730 阅读 · 0 评论 -
【Python那些事儿】Python中的类型转换
int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象 tu原创 2016-10-19 16:57:27 · 405 阅读 · 0 评论 -
【Python那些事儿】Python中的读写文件
综述在Python中读写文件,你不需要导入任何库;第一步就是获取文件对象;主要利用“open()”函数。文件类型文本文件二进制文件Open()函数打开文件进行读写操作,需要使用Python的内置函数:open()。它返回一个文件对象,最常用的参数有两个。语法:file_object = open(filename, mode) where file_object is the v原创 2016-10-30 10:50:37 · 13110 阅读 · 0 评论 -
对Python中的Pandas进行SQL查询——pandasql
背景众所周知,用SQL语句进行数据查询十分方便,因为跟自然语言更接近。pandas其实是模仿R语言中的DataFrame设计的一个Python库。R语言中可以使用sqldf实现SQL查询;pandas中也有类似的库:pandasql。pandasql介绍Overview pandasql allows you to query pandas DataFrames using SQL sy原创 2016-12-05 20:27:53 · 28533 阅读 · 2 评论 -
【Python那些事儿】Python中的生成器
生成器(generator)生成器,即生成一个容器。在Python中,一边循环,一边计算的机制,称为生成器。生成器可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他数据类型需要调用自己的内置iter()方法或__iter__()的内置函数),所以,生成器就是一个可迭代对象。在Python中,使用生成器可以很方便的支持迭代器协议。生成器优点python使用生成器对延迟操作提供了支原创 2016-12-21 20:08:33 · 3514 阅读 · 0 评论 -
Python操作MySQL
这篇文章主要记录如何使用Python操作MySQL数据库的基础知识点。准备工作在开始之前需要先安装MySQL数据库,以及应用模块MySQLdb。很简单:$ sudo apt-get install mysql-server$ sudo apt-get install python-mysqldb接下来,需要在MySQL中建立一个新的数据库testdb和新用户Do,以便操作。$ mysql -原创 2016-12-23 20:54:17 · 1077 阅读 · 0 评论 -
【Python那些事儿】Python中的迭代器
主要记录:迭代器(iterator)协议对象必须提供一个next()方法,执行该方法时,要么返回迭代中的下一项,要么引起一个StopIteration异常。只能往前访问,不会后退。在Python中,支持迭代器协议就是实现对象的__iter__和next()方法。 __iter__方法:返回迭代器对象本身;next()方法:返回容器中的下一个元素,在结尾时引发StopIteration异常终原创 2016-12-21 17:25:28 · 3654 阅读 · 0 评论 -
Python Cookbook 2 ——搜索和排序
Donald Knuth教授曾在《 The Art of Computer Programming》中提到:有很多计算机花了超过一半的计算时间在排序上。可以理解为:确实有很多非常重要的和排序有关的应用;有很多人在进行一些不必要的排序;低效的排序算法被广泛应用造成了计算时间的浪费。在Python中,对于排序的策略:当需要排序的时候,尽量设法使用内建Python列表的sort方法原创 2017-01-15 15:30:03 · 394 阅读 · 0 评论 -
Python Cookbook 2——Python技巧
对象拷贝new_list = copy.copy(existing_list)浅拷贝,虽然生成一个新对象,但是对象内部的属性和内容仍然引用原对象,一旦修改一个,两个均被改变。new_list = copy.copy(existing_list) 深拷贝,修改new_list同时不改变existing_list。这种拷贝会消耗相当的时间和内存。若列表中某元素存在则返回之def原创 2017-01-10 21:27:09 · 1032 阅读 · 0 评论 -
Python小程序
1.验证码生成器from string import ascii_uppercase, ascii_lowercase, digitsimport randomdef get_check_code(len_, mode = (True, True, True)): '''check code creater. len_ : length of check code. mo原创 2017-02-24 19:19:21 · 470 阅读 · 0 评论 -
Logistic回归
Logistic 回归优点: 易于理解,计算量不大缺点 容易欠拟合,精度不高适用数据类型: 数值型、标称型Sigmoid函数Sigmoid函数: Sigmoid函数的输入记为z,由下面公式得出: 式中,向量x为分类器的输入数据,向量w为最佳回归系数。最佳回归系数的确定——梯度上升法思想:要找到某函数的最大值,最好的方法就是沿着该函数的梯度方向探寻。公式:梯度记为,则函数原创 2017-03-15 21:57:49 · 673 阅读 · 0 评论 -
Python生成词云——WordCount入门
主要内容:介绍词云用Python的WordCount包实现词云词云关键词的视觉化描述;图形可视化;用于汇总用户生成的标签或一个网站的文字内容;重要程度能通过改变字体大小或颜色来表现;大多数标签本身就是超级链接,直接指向与标签相联的一系列条目。Python实现词云构造词云的方法很多,这里推荐Python的WordCount包,实现非常方便,且能够自定义图片。具体可参考:WordCou原创 2016-12-13 13:43:47 · 5007 阅读 · 3 评论 -
Pyhotn工厂模式
工厂模式形式工厂方法:对不同的输入参数返回不同对象;抽象工厂:是一组用于创建一系列相关事物对象的工厂方法。工厂方法数据来源形式:人们可读文件:XML、Atom、YAML、JSON等二进制文件:.sq3、.mp3问题:有一些数据存储在XML和JSON文件中,对这两个文件进行解析,获取一些信息;对这些外部服务进行集中式的客户端连接。数据形式:JSON[ {原创 2017-05-16 20:10:38 · 416 阅读 · 0 评论 -
Python外观模式
外观模式许多情况下,我么不想把内部复杂性暴露给客户端。外观模式有助于隐藏系统的内部复杂性,并通过一个简化的接口向客户端暴露必要的部分。外观模式跟代理模式有点像,都是在客户端和目标类之间建一个中间的类,客户端不直接调用目标的类,而是通过先调用中间类的方法,由中间类来实现怎么调用目标类。外观模式的目的是通过建立一个中间类,把调用目标类的代码都封装好,例如有时候目标类有很多个,逐一得去调用它们会很麻原创 2017-06-06 10:53:09 · 515 阅读 · 0 评论 -
二分查找及简单应用
二分查找又称折半查找。优点:是比较次数少,查找速度快,平均性能好。缺点:是要求待查表为有序表,且插入删除困难。适用于不经常变动而查找频繁的有序列表。过程:首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上原创 2017-09-12 15:08:51 · 648 阅读 · 0 评论