失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 《机器学习Python实践》第4章——Python和SciPy速成

《机器学习Python实践》第4章——Python和SciPy速成

时间:2023-04-16 08:14:38

相关推荐

《机器学习Python实践》第4章——Python和SciPy速成

1. Python速成1)复杂数据类型(1)元组:只读集合类型,用小括号定义,初始化后,元组的元素不能重新赋值。(2)列表 : 列表只能通过中括号定义,列表的元素可以重新赋值。(3)字典:可变容器模型,可存储任意类型的对象。字典的每个键值对(key,value)用冒号(:)分隔,每个键值对之间用逗号(,)分隔,整个字典包括在花括号({})中。 2)with语句 2.NumPy速成1)创建数组2)访问数组3)算数运算 3 matplotlib速成(1)绘制线条图(2)绘制散点图 4 Pandas速成(1)Series(2)DataFrame

1. Python速成

1)复杂数据类型

三种常用的数据类型:元组、列表、字典。 其中,列表字典更是经常被使用。

(1)元组:只读集合类型,用小括号定义,初始化后,元组的元素不能重新赋值。

a=(1,2,3)print(a)print(a[1])

执行结果如下:

(2)列表: 列表只能通过中括号定义,列表的元素可以重新赋值

对列表增加列表项用列表的append()函数。

b=[4,5,6]print(b)b.append(7)print(b)print(b[3])

运行结果如下:

(3)字典:可变容器模型,可存储任意类型的对象。字典的每个键值对(key,value)用冒号(:)分隔,每个键值对之间用逗号(,)分隔,整个字典包括在花括号({})中。

mydic={'a':12.15, 'name':True, 'age':'18'}print('a vales is :%d' %mydic['a'])print('Keys: %s' %mydic.keys())print("values :%s" %mydic.values())for key in mydic:print(mydic[key])

删除字典中的全部元素,可以用字典自身的clear()方法

若删除字典特定的key元素,用pop(key)方法

mydic={'a':12.15, 'name':True, 'age':'18'}print(mydic)#增加字典元素mydic['e']=1236print('e vales is :%d' %mydic['e'])print(mydic)#删除字典特定的key元素mydic={'a':12.15, 'name':True, 'age':'18'}mydic.pop('a')print(mydic)#删除字典中的全部元素mydic.clear()print(mydic)

2)with语句

语句体(with-body): with 语句包裹起来的代码块,在执行语句体之前会调用上下文管理器的__enter()__方法,执行完语句体之后会执行__exit()__方法。

例如对文件进行操作,可使用with语句。

with open('somefileName') as somefile:for line in somefile:print(line)

这里使用了with语句,不管在处理文件过程中是否发生异常,都能保证with语句执行完毕后关闭了打开的文件句柄。

如果使用传统的try/finally范式,则要使用如下代码:

somefile=open('somefileName')try:for line in somefile:print(line)finally:somefile.close()

2.NumPy速成

1)创建数组

利用NumPy创建多为数组非常简单,通过给array函数传递Python的序列对象创建数组。如果传递的是多层嵌套的序列,将创建多维数组。

#创建一维数组import numpy as npmyarray=np.array([1,2,3])print(myarray)print(myarray.shape)

创建多维数组

import numpy as np# 创建多维数组myarray=np.array([[1,2,3],[4,5,6],[7,8,9]])print(myarray)print(myarray.shape)

2)访问数组

对于ndarray数组的访问,可以通过数组下表访问某一行、某一列:

import numpy as np#创建多维数组myarray=np.array([[1,2,3],[4,5,6],[7,8,9]])print(myarray)print(myarray.shape)#访问某一行print('这是第一行:%s' %myarray[0])print('这是最后一行:%s' %myarray[-1])print('访问整列(3列)数据:%s'%myarray[:,2])print('访问指定行(2行)和列(3列)的数据:%s'%myarray[1,2])

3)算数运算

使用NumPy的ndarray可以直接进行算数运算,或者说向量运算。

import numpy as np#创建多维数组myarray1=np.array([[1,2,3],[4,5,6],[7,8,9]])myarray2=np.array([[11,22,32],[42,52,62],[72,82,92]])print('向量加法运算:')print(myarray1+myarray2)print('向量乘法运算:')print(myarray1*myarray2)

3 matplotlib速成

matplotlib是Python中著名的2D绘图库。

调用plot()、scatter() 等方法, 并为绘图填充数据。数据是NumPy的ndarray类型的对象。设定数据标签,使用xlabel()、ylabel()方法;展示绘图结果,使用show()方法。

(1)绘制线条图

import matplotlib.pyplot as pltimport numpy as np#创建多维数组myarray=np.array([[1,2,3],[4,5,6],[7,8,9]])#初始化绘图plt.plot(myarray)#设定x轴和y轴plt.xlabel('x axis')plt.ylabel('y axis')plt.show()

(2)绘制散点图

import matplotlib.pyplot as pltimport numpy as np#创建多维数组myarray1=np.array([1,2,3])myarray2=np.array([11,21,31])#初始化绘图plt.scatter(myarray1,myarray2)#设定x轴和y轴plt.xlabel('x axis')plt.ylabel('y axis')plt.show()

4 Pandas速成

Pandas提供了用于机器学习的复杂数据类型:矢量运算方法和数据分析方法。Pandas也提供可多种数据结构。

Pandas是一个强大的对数据进行切片的工具。

Series:一位数组,与NumPy中的一维array类似。二者与Python中的基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而array和Series中只允许存储相同的数据类型——更有效地使用内存、提高运算效率。Time-Series: 以时间为索引的Series;DataFrame: 二维的表格型数据结构;可以理解为Series的容器。Panel: 三维数组,可以理解为DataFrame的容器。

(1)Series

在建立Series时可以设定index, 也可以像访问NumPy数组或字典一样来访问Series元素。

import numpy as npimport pandas as pdmyarray=np.array([1,2,3])myindex=['a','b','c']myseries=pd.Series(myarray,index=myindex)print(myseries)print("Series中的第一个元素:")print(myseries[0])print("Series中的c index 元素:")print(myseries['c'])

(2)DataFrame

DataFrame是一个可以指定行和列标签的二维数组。数据可以通过指定列名来访问特定列的数据

import numpy as npimport pandas as pdmyarray=np.array([[1,2,3],[4,5,6],[7,8,9]])rowindex=['row1','row2','row3']colname=['col1','col2','col3']MyDataframe=pd.DataFrame(data=myarray,index=rowindex, columns=colname)print(MyDataframe)print('访问col3的数据:')print(MyDataframe['col3'])

如果觉得《《机器学习Python实践》第4章——Python和SciPy速成》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。