用python玩转数据测试与作业_学习《用Python玩转数据》课程总结

最近学习了慕课网上的《用Python玩转数据》,写个总结,顺便再梳理一下。

总的来说,这个课程是比较好的入门引导,讲的比较浅显,但是都点到了,对于一个小白来说,算是打开了一扇大门,至于更深一步的内容就要靠自己了。

玩转数据分两步:

1、数据的获取,包括本地数据和网络数据;

2、数据整理、描述、分析

一、数据的获取

1.1 本地数据获取

常用函数:open,read,write,readline,readlines,writelines,close,seek

可以对txt,csv,excel文件进行读写操作,每个函数又有很多个参数,可以根据不同需求选择

1.2 网络数据的获取

uillib.request

Requests第三方库

Scrapy框架

课程中介绍的是requests库,使用非常简便

importrequests

r= requests.get(url)

这样就可以抓取网页的信息,存储到变量r中,以进行下一步的分析。

网页的解析常用的是:

BeautifulSoup库

re模块

对于科学工程领域更高级的要求,Python提供了开源的Scipy扩展库,包括下面几个核心包,功能强大。

强大的ndarray对象和ufunc函数

比较适合线性代数和随机数处理等科学计算

有效的通用多位数据,可定义任意数据类型

无缝对接数据库

2.2 SciPy库

Python中科学计算程序的核心包

有效计算numpy矩阵,让Numpy和Scipy协同工作

致力于科学计算中常见问题的各个工具箱,其不同子模块有不同的应用,如插值、积分、优化和图像处理等。

基于Numpy

二维绘图库,简单快速生成曲线图,直方图和散点图等形式的图

常用的pyplot是一个简单提供类似matlab接口的模块

基于Scipy和Numpy

高效的Series和Dataframe结构数据库

强大的可扩展数据操作与分析的Python库

高效梳理大数据集的切片等功能

提供优化库功能读写多种文件格式,如csv,HDF5等

三、Python中常用的数据结构

Python常用的数据结构有字典(dic)、元组(tuple)、列表(list)、集合(set),详见另一篇文章:http://www.cnblogs.com/sharon123/p/7090001.html

Scipy中的数据结构是Python原有数据结构变化,有N维数组(ndarray)、变长字典(Series)、数据框(Dataframe)

3.1 ndarray

ndarray是Numpy的基本数据机构,所有元素是同一种类型,拥有丰富的函数。

ndarray的创建示例:

>>> import numpy as np

>>> a = np.array([1,2,3])

>>> a

array([1, 2, 3])

>>> np.arange(1,5,0.5)

array([ 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])

>>> np.random.random((2,2))

array([[ 0.67516447, 0.21711136],

[ 0.96711409, 0.24275549]])

>>> np.linspace(1,2,10,endpoint=False)

array([ 1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9])

>>> np.ones([2,3])

array([[ 1., 1., 1.],

[ 1., 1., 1.]])

>>> np.zeros((2,2))

array([[ 0., 0.],

[ 0., 0.]])

除此之外,还可以用:

ndarray的基本数组统计方法:

线性代数常用函数:

ndarray的ufunc函数是一种能对数组的每个元素进行操作的函数,Numpy内置的许多ufunc函数都是在C语言级别实现的,计算速度非常快。

3.2 Series

类似一维数组,有数据和索引构成,索引能够自己定义

>>> from pandas importSeries>>> importpandas as pd>>> a = pd.Series([1,2.0,'a'])>>>a

01

1 2

2a

dtype: object>>> b = pd.Series(['apple','peach','lemon'],index=[1,2,3])>>>b1apple2peach3lemon

dtype: object>>>b.index

Int64Index([1, 2, 3], dtype='int64')>>>b.values

array(['apple', 'peach', 'lemon'], dtype=object)>>> c = pd.Series([3,5,7],index=['a','b','c'])>>> c['b']5

>>> c*2a6b10c14dtype: int64

3.3 Dataframe

Datafame是一个表格型的数据结构,含有一组有序的列,可以看成共享同一个index的Series集合

'''创建DataFrame'''

>>> importpandas as pd>>> from pandas importDataFrame>>> data = {'name': ['Wangdachui', 'Linling', 'Niuyun'], 'pay': [4000, 5000, 6000]}>>> frame=pd.DataFrame(data)>>>frame

name pay

0 Wangdachui4000

1 Linling 5000

2 Niuyun 6000

>>> data=np.array([('Wangdachui', 4000), ('Linling', 5000), ('Niuyun', 6000)])>>> frame =pd.DataFrame(data, index = range(1, 4), columns = ['name', 'pay'])>>>frame

name pay1 Wangdachui 4000

2 Linling 5000

3 Niuyun 6000

'''DataFrame 列获取'''

>>> frame['name']1Wangdachui2Linling3Niuyun

Name: name, dtype: object>>> frame['pay']1 4000

2 5000

3 6000Name: pay, dtype: object'''DataFrame 列切片'''

>>> frame.iloc[:2,1]1 4000

2 5000Name: pay, dtype: object'''DataFrame 对象修改'''

>>> frame['name']='admin'

>>>frame

name pay1 admin 4000

2 admin 5000

3 admin 6000

'''DataFrame 对象删除'''

>>> del frame['pay']>>>frame

name1admin2admin3 admin

scikit-learn

Simple and efficient tools for data mining and data analysis

Accessible to everybody, and reusable in various contexts

Built on NumPy, SciPy, and matplotlib

Open source, commercially usable - BSD license

你可能感兴趣的:(用python玩转数据测试与作业_学习《用Python玩转数据》课程总结)