Python除了有200个标准库以外,还有10万个第三方扩展库,囊括了方方面面。其中做数据分析最常用到的库有4个:
创新互联始终坚持【策划先行,效果至上】的经营理念,通过多达十多年累计超上千家客户的网站建设总结了一套系统有效的全网营销解决方案,现已广泛运用于各行各业的客户,其中包括:岗亭等企业,备受客户赞誉。
Numpy
Numpy是Python科学计算的基础包。它除了为Python提供快速的数组处理能力,还是在算法和库之间传递数据的容器。对于数值型数据,NumPy数组在存储和处理数据时要比内置的 Python数据结构高效得多。此外,由低级语言(比如C和Fortran)编写的库可以直接操作NumPy 数组中的数据,无需进行任何数据复制工作。因此,许多Python的数值计算工具要么使用NumPy 数组作为主要的数据结构,要么可以与NumPy进行无缝交互操作。
Pandas
Pandas提供了快速便捷处理结构化数据的大量数据结构和函数,兼具NumPy高性能的数组计算功能以及电子表格和关系型数据库(如SQL)灵活的数据处理功能。它提供了复杂精细的索引功能,能更加便捷地完成重塑、切片和切块、聚合以及选取数据子集等操作。因为数据操作、准备、清洗是数据分析最重要的技能,所以Pandas也是学习的重点。
Matplotlib
Matplotlib是最流行的用于绘制图表和其它二维数据可视化的Python库,它非常适合创建出版物上用的图表。虽然还有其它的Python可视化库,但Matplotlib却是使用最广泛的,并且它和其它生态工具配合也非常完美。
Scikit-learn
Scikit-learn是Python的通用机器学习工具包。它的子模块包括分类、回归、聚类、降维、选型、预处理,对于Python成为高效数据科学编程语言起到了关键作用。
5个常用的Python标准库:
1、os:提供了不少与操作系统相关联的函数库
os包是Python与操作系统的接口。我们可以用os包来实现操作系统的许多功能,比如管理系统进程,改变当前路径,改变文件权限等。但要注意,os包是建立在操作系统的平台上的,许多功能在Windows系统上是无法实现的。另外,在使用os包中,要注意其中的有些功能已经被其他的包取代。
我们通过文件系统来管理磁盘上储存的文件。查找、删除、复制文件以及列出文件列表等都是常见的文件操作。这些功能通常可以在操作系统中看到,但现在可以通过Python标准库中的glob包、shutil包、os.path包以及os包的一些函数等,在Python内部实现。
2、sys:通常用于命令行参数的库
sys包被用于管理Python自身的运行环境。Python是一个解释器,也是一个运行在操作系统上的程序。我们可以用sys包来控制这一程序运行的许多参数,比如说Python运行所能占据的内存和CPU,Python所要扫描的路径等。另一个重要功能是和Python自己的命令行互动,从命令行读取命令和参数。
3、random:用于生成随机数的库
Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序列中的一个元素,打乱一组数据等。
4、math:提供了数学常数和数学函数
标准库中,Python定义了一些新的数字类型,以弥补之前的数字类型可能的不足。标准库还包含了random包,用于处理随机数相关的功能。math包补充了一些重要的数学常数和数学函数,比如pi、三角函数等等。
5、datetime:日期和时间的操作库
日期和时间的管理并不复杂,但容易犯错。Python的标准库中对日期和时间的管理颇为完善,你不仅可以进行日期时间的查询和变换,还可以对日期时间进行运算。通过这些标准库,还可以根据需要控制日期时间输出的文本格式。
除此之外,Python还有很多第三方库,了解更多可移步:oldboyedu
在C#中调用Python方法
添加一个按钮控件,双击按钮为其添加代码:
首先添加引用,它们定义了Python和ScriptRuntime两个类型:
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;
实现功能如下:
复制代码
private void button1_Click(object sender, EventArgs e)
{
ScriptRuntime pyRunTime = Python.CreateRuntime();
dynamic obj = pyRunTime.UseFile("PythonFiles/hello.py");
int val = obj.Strengthen_Money_WuQi(5, 2);
MessageBox.Show(val + "");
}
复制代码
第一句代码创建了一个Python的运行环境,第二句则使用.net4.0的语法创建了一个动态的对象, OK,下面就可以用这个dynamic类型的对象去调用刚才在定义的welcome方法了。
注意:在运行前一定要把hello.py文件设为:Copy always.
我们之前已经学习了xlrd这个库,这个库是读取excel表格内信息的,它并不能写入信息,这时候我们需要使用xlwt3这个库进行excel表格的写入。
打开命令提示符,使用pip进行安装
安装完后进入下一步:
这个xlwt3的库,好像已经很久没有人维护了,所以有一个问题就是,你用pip安装的这个库,是有点问题的,需要咱们手动修改。
打开python的安装目录,就是你的python的安装位置,我的在D盘,找到D:\Python34\Lib\site-packages\xlwt3\formula.py这个文件,右键点击,使用IDLE打开
将其中的
修改为
就是把第一个" __init__ "删掉。
打开python shell
使用 import xlwt3 ,看看报不报错,没有报错说明修改成功。安装完成。
我们使用这个包主要是为了生成excel表格,将我们处理好的数据存到excel表格中。
为此,我们需要的是xlwt3里面的Workbook这个类。
先创建实例:
这样就创建完了一个实例。
我们知道,一个.xlsx文件或.xls文件称为一个工作簿,里面有好几张工作表,我们现在创建的这个Workbook()实例,它也是一个工作簿,我们要写入内容的话是要写进工作表里面的,这就需要我们创建一个工作表,工作表名是'test1'。
使用的是Workbook下属的add_sheet方法,add_sheet,新建工作表。
add_sheet(self, sheetname, cell_overwrite_ok=False)
需要注意的是,这个方法有两个参数
· 第一个是sheetname,这个是工作表的名字,必须要设置的
· 另一个参数是cell_overwrite_ok,这个参数是覆写的意思,默认是False,如果你现在要写的单元格里面,已经有内容了,就不能写了,如果你要是写的话会报错的。当然,我们在使用的时候,最好是设置成True。也就是上面的那个写法。这样对同一个单元格写入两次的话就不会报错了,当然,只会保留最后一次写入的值。
接下来可以写入信息了。
事实上,我们刚才使用add_sheet这个方法后,创建出了一个Worksheet类的实例。这个类有两个方法是我们需要使用的,一个是write,另一个是write_merge。前者用来写入一个单元格的内容,后者用来写入一个合并单元格的内容。
我们先看write方法,里面有四个参数,分别是r,c,label,style,
· r是行
· c是列
· label是内容
· style是格式
上面写的 table.write(1,0,'number') 是在第二行的第一列写入'number'这个字符串。
同理,另外两句分别是在第二行的第二列和第二行的第三列写入'name'和'score'这两个字符串。
write_merge是写合并单元格的方法
· r1是最上面的单元格所在的行数
· r2是最下面的单元格所在的行数
· c1是最左面的单元格所在的列数
· c2是最右面的单元格所在的列数
· label是要写入的内容
· style是格式
上面那个 table.write_merge(0,0,0,2,'Student information') ,是把第0行的第一列,第二列,第三列的单元格合并了,在里面写入'Student information'这个字符串。
如果我们写入信息的时候,不加style这个参数,那么里面的信息就是最普通的,没有什么格式,颜色啊,粗体啊,边框啊,什么的。
在xlwt3中,使用easyxf这个函数来设置单元格属性。
比如这句当中,我们可以看到传入了一个字符串作为参数:
'font: bold on, italic on, name 宋体, height 400, color red; align: vert centre, horiz centre; borders: top THIN,left THIN,right THIN,bottom THIN'
分解来看,这个字符串有三部分:
我们刚才不是用
创建了一个单元格属性吗,红色20号宋体,粗体,斜体,四周有边框,居中。
写入的使用加在作为style参数传入。
这样,我们就成功的设置单元格格式了。
接下来我们设置列宽。
使用这个方法就能设置列宽了,里面的0代表第一列,列宽是20。我也不知道这个列宽是怎么换算的,只要设置5293的话就是20,大家可以根据换算设置自己想要的列宽。
最后一步,保存我们建立的工作簿。
这里面就一个参数,你要保存的excel表格的文件名。需要加路径和后缀名的。需要注意的是,这个xlwt3只能保存成.xls的excel文件。
打开我们保存的excel表格。
可以看到,工作表名是我们设置的test1,第一行的前三个单元格合并了,内容是'Student information',红色20号宋体,粗体,斜体,四周有边框,居中。第二行分别是number,name,score。
以上就是创建这个excel表格的流程。
刚才上pypi发现,这个包好像就要被移除了,这样的话以后用pip就无法安装了。
xlwt3 0.1.2 : Python Package Index
以上就是关于xlwt3这个包的简单教程。
Python: 译为“蟒蛇”、拥有者PSF、开发者Guido、 主流版本:Python 3、 理念:开源、开放
安装python :点击extensions,输入“python”,点击install进行安装
安装第三方库 :以安装NumPy库为例(NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库)
pip是python的包管理工具
第一次在终端中输入 pip install numpy,报错command not found
第二次用pip3 install numpy安装成功。
原因是pip和pip3版本不同
查看已安装的第三方库 :pip3 list
在做一些项目的时候,因为用到了第三方的接口,而第三方的接口可能没有做好或者第三方的接口不方便访问的时候,一般都会用到Mock的技术。
Mock这个词在英语中有模拟的这个意思。Python3.x中本身就自带了Mock库,(Python2.x中还是单独的)Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为。
简单的说,mock库用于如下的场景:
假设你开发的项目叫a,里面包含了一个模块b,模块b中的一个函数c(也就是a.b.c)在工作的时候需要调用发送请求给特定的服务器来得到一个JSON返回值,然后根据这个返回值来做处理。如果要为a.b.c函数写一个单元测试,该如何做?
一个简单的办法是搭建一个测试的服务器,在单元测试的时候,让a.b.c函数和这个测试服务器交互。但是这种做法有两个问题:
1 . 测试服务器可能很不好搭建,或者搭建效率很低。
2 . 你搭建的测试服务器可能无法返回所有可能的值,或者需要大量的工作才能达到这个目的。
httmock库是基于Mock库的,它更方便于用requests的方式来返回接口的值。
使用pip命令来安装:
用法:
1 您可以使用它来模拟第三方API和在内部使用 requests 的测试库,有条件地使用 urlmatch 装饰器:
控制台显示:
2 all_requests 装饰器没有条件地阻止实际的请求。 如果您返回一个字典,它将映射到返回的“request.Response”对象:
控制台显示:
3 如果你传递 Set-Cookie 头, request.Response.cookies 将包含这些值。 您也可以直接使用 response 方法,而不是返回一个dict:
控制台显示:
CC先生说:
要明白上面的例子,预备知识至少需要有:
-Python 中requests库的用法
-Python中装饰器的用法
or 你直接套用上面的用法就可以返回第三方接口或者依赖的模块的值了。
以上