MachineLearning入门-5

时间:2020-02-09 17:12:01   收藏:0   阅读:60

目标:

Python速成

基本数据类型和赋值运算:字符串、数值、布尔类型、多变量赋值、空值。

在Python中,空格是有意义的,用来区分代码块。

每一种数据类型都是对象,空值是Python中的一个特殊值,用None表示,表示改值是一个空对象。可以将None赋值给任何对象,也可以将任何变量赋值给一个None值的对象。

控制语句:条件控制、循环语句、条件循环。

在Python中有三种数据类型非常有用,并且会被经常使用到。它们分别是元组、列表、字典。

元组:是一个只读的集合类型,初始化后,元组的元素不能重新赋值。

1 #元组
2 a=(1,2,3,4)
3 print(a)
4 print(a[1])
(1, 2, 3, 4)
2
列表:与元组类似,只是列表通过中括号定义,而且列表的元素可以重新赋值。对列表增加列表项使用列表的append()函数。、
 1 #列表
 2 a=[1,2,3]
 3 print(a)
 4 #增加列表项
 5 a.append(4)
 6 print(a)
 7 print(a[3])
 8 #更新列表项
 9 a[2]=5
10 print(a)
11 for i in a:
12     print(i)
[1, 2, 3]
[1, 2, 3, 4]
4
[1, 2, 5, 4]
1
2
5
4
字典:是另一种可变容器模型,且可以存储任意类型的对象。字典的每个键值对(key,value)用冒号(:)分隔。每个键值对之间用逗号(,)分隔,整个字典包括在花括号({})中。
 1 #字典
 2 mydict={a:6.16,b:str,c:True}
 3 print(A vluae: %.2f % mydict[a])
 4 #增加字典元素
 5 mydict[a]=523
 6 print(A value: %d % mydict[a])
 7 print(keys: %s % mydict.keys())
 8 print(values: %s % mydict.values())
 9 for key in mydict:
10     print(mydict[key])
A vluae: 6.16
A value: 523
keys: dict_keys([‘a‘, ‘b‘, ‘c‘])
values: dict_values([523, ‘str‘, True])
523
str
True
此外,若删除字典中全部元素,使用字典自身的clear()方法;若删除字典特定key元素,用pop(key)方法。
1 mydict={a:6.18,b:str,c:True}
2 #删除特定元素
3 mydict.pop(a)
4 print(mydict)
5 #删除字典中全部元素
6 mydict.clear()
7 print(mydict)
{‘b‘: ‘str‘, ‘c‘: True}
{}

with语句

下面是一组与上下文管理器和with语句有关的概念。
上下文管理协议(Context Management Protocol):包含方法__enter__(),__exit__(),支持该协议的对象要实现这两个方法。
上下文管理器(Context Manager):支持上下文管理协议的对象。定义执行with语句时要建立的运行时上下文,负责执行with语句块上下文中的进入与退出操作。
运行时上下文(Runtime Context):由上下文管理器创建,通过上下文管理器的__enter__(),__exit__()方法实现。__enter__()方法在语句体执行之前进入上下文,__exit__()方法在语句体执行完毕后从运行的上下文中退出。
上下文表达式(Context Expression):with语句中跟在关键字with之后的表达式,该表达式要返回一个上下文管理器对象。
语句体(with-body):with语句包裹起来的代码块,在执行语句体之前会调用上下文管理器__enter__()方法,执行完语句体之后会执行__exit__()方法。

Python对一些内建的对象进行该进,加入了对上下文管理器的支持,可以用于with语句中,比如可以自动关闭文件、线程锁的自动获取、释放。假设要对一个文件进行操作,可以使用with语句,代码如下:
1 with open(somefileName) as somefile:
2     for line in somefile:
3         print(line)
4         #... more code

这里使用了with语句,不管在处理文件过程中是否发生异常,都能保证with语句执行完毕后关闭了打开的文件句柄。如果使用传统的try/finally范式,则要使用如下代码:

1 somefile=open(somefileName)
2 try:
3     for line in somefile:
4         print(line)
5         #...more code
6 finally:
7     somefile.close()

使用with语句,简化了对异常的处理。因此,当需要对异常进行处理时,如果对象遵循了上下文管理协议,建议使用with语句来实现。

Numpy速成

Numpy为Scipy提供了基本的数据结构和运算,其中最主要的是ndarrays多维数组,它提高了高效的矢量运算功能。

访问数据

算数运算

Matplotlib速成

Matplotlib是Python中著名的2D绘图库,使用方法比较简单,按照下面的三步进行操作就能很简单的完成绘图。

绘制线条图

下面是一个简单的绘制线条图的例子,代码如下:

 1 import matplotlib.pyplot as plt
 2 import numpy as np
 3 #定义绘图的数据
 4 myarray=np.array([[1,2,3],[2,3,4],[3,4,5]])
 5 #初始化绘图
 6 plt.plot(myarray)
 7 #设定x轴和y轴
 8 plt.xlabel(x axis)
 9 plt.ylabel(y axis)
10 #绘图
11 plt.show()

技术分享图片

下面是一个简单的绘制散点图的例子,代码如下:

 1 #定义绘图的数据
 2 myarray1=np.array([1,2,3])
 3 myarray2=np.array([11,21,31])
 4 #初始化绘图
 5 plt.scatter(myarray1,myarray2)
 6 #设定x轴和y轴
 7 plt.xlabel(x axis)
 8 plt.ylabel(y axis)
 9 #绘图
10 plt.show()

技术分享图片

更多类型的图表绘制砬,请参考:http://matplotlib.org/gallery.html。

Pandas速成

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

 Series使用:

 1 import numpy as np
 2 import pandas as pd
 3 myarray=np.array([1,2,3])
 4 index=[a,b,c]
 5 myseries=pd.Series(myarray,index=index)
 6 print(myseries)
 7 print(first element : )
 8 print(myseries[0])
 9 print(c index value: )
10 print(myseries[c])
a    1
b    2
c    3
dtype: int64
first element : 
1
c index value: 
3
DataFrame是一个可以指定行和列标签的二维数组。数据可以通过指定列名来访问特定的数据。
1 myarray=np.array([[1,2,3],[2,3,4],[3,4,5]])
2 rowindex=[row1,row2,row3]
3 colname=[col1,col2,col3]
4 mydataframe=pd.DataFrame(data=myarray,index=rowindex,columns=colname)
5 print(mydataframe)
6 print(get data of col3:)
7 print(mydataframe[col3])
      col1  col2  col3
row1     1     2     3
row2     2     3     4
row3     3     4     5
get data of col3:
row1    3
row2    4
row3    5
Name: col3, dtype: int64
更多Pandas API函数请查阅:http://pandas.pydata.org/pandas-docs/stable。

 





 

原文:https://www.cnblogs.com/yuzaihuan/p/12275937.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!