机器学习基础Numpy | Matplotlib | Pandas
程序员文章站
2022-03-20 23:27:57
...
Numpy
1.创建数组
通过给array函数传递Python的序列对象创建数组,如果传递的是多层嵌套的序列,将创建多维数组。
import numpy as np
#创建数组
myarray = np.array([1, 2, 3])
print(myarray)
print(myarray.shape)
#创建多维数组
myarray = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5]]) print(myarray)
print(myarray.shape)
2.访问数据
可以通过数组的下标访问某一行,也可以访问某一列。
import numpy as np
#创建多维数组
myarray = np.array([[1, 2, 3], [2, 3, 4],[3, 4, 5]]) 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], [2, 3, 4], [3, 4, 5]]) myarray2 = np.array([[11, 21, 31], [21, 31, 41], [31, 41, 51]])
print('向量加法运算:')
print(myarray1+ myarray2)
print('向量乘法运算:')
print(myarray1 * myarray2)
Matplotlib
Matplotlib是Python中著名的2D绘图库,使用方法比较简单,按照下面的三步进行操作就能很简单地完成绘图。
1.调用plot()、scatter()等方法,并为绘图填充数据。数据是NumPy的ndarray类型的对象。
2.设定数据标签,使用xlabel()、ylabel()方法。
3.展示绘图结果,使用show()方法。
1.绘制线条图
import matplotlib.pyplot as plt
import numpy as np
#定义绘图的数据
myarray = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5]])
#初始化绘图,横坐标是数组位置0 1 2
plt.plot(myarray)
#设定x轴和y轴
plt.xlabel('x axis')
plt.ylabel('y axis')
#绘图
plt.show()
2.绘制散点图
import matplotlib.pyplot as plt
import numpy as np
#定义绘图的数据
myarray1 = np.array([1, 2, 3])
myarray2 = np.array([11,21,31])
#初始化绘图
plt.scatter(myarrayl, myarray2)
#设定x轴和y轴
plt.xlabel('x axis')
plt.ylabel('y axis')
#绘图
plt.show()
Matplotlib提供了很多种类的图表的绘制功能。参考http://matplotlib.org/gallery.html
Pandas
Pandas提供了用于机器学习的复杂数据类型:矢量运算方法和数据分析方法。Pandas也提供了多种数据结构。
- Series:一维数组,与NumPy中的一维Array类似。二者与Pyhon基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效地使用内存,提高运算效率。
- Time-Series:以时间为索引的Series。
- DataFrame:二维的表格型数据结构。很多功能与R语言中的data.frame类似。可以将DataFrame理解为Series的容器。
- Panel:三维数组,可以理解为DataFrame的容器。
重点理解Series和DataFrame这两种数据类型,实践机器学习。
1.Series
Series虽然与NumPy的一维数组类似,但是在建立Series时可以设定index,也可以像访问NumPy数组或字典一样来访问Series元素。
import numpy as np
import pandas as pd
myarray = np.array([1, 2, 3])
index = ['a','b','c']
myseries = pd.Series(myarray, index=index)
print(myseries)
print('Series中的第一个元素:')
print(myseries[O])
print('Series中的c index元素:')
print(myseries['c']
2.DataFrame
DataFrame是一个可以指定行和列标签的二维数组。数据可以通过指定列名来访问特定列的数据。
import numpy as np
import pandas as pd
myarray = np.array([[1, 2, 3], [2, 3, 4], [3, 4, 5]]) rowindex = ['rowl','row2','row3']
colname = ['col1','col2','col3']
mydataframe = pd.DataFrame(data=myarray, index=rowindex, columns=colname)
print(mydataframe)
print('访问col3的数据:')
print(mydataframe['col3'])
Pandas是一个功能强大的对数据进行切片的工具,更多的内容请查阅PandasAPI ( http://pandas.pydata.org/pandas-docs/stable/)
上一篇: 《剑指offer》NO29 顺时针打印矩阵 详解 <Java实现>
下一篇: JDBC巩固复习