欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

机器学习基础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也提供了多种数据结构。

  1. Series:一维数组,与NumPy中的一维Array类似。二者与Pyhon基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效地使用内存,提高运算效率。
  2. Time-Series:以时间为索引的Series。
  3. DataFrame:二维的表格型数据结构。很多功能与R语言中的data.frame类似。可以将DataFrame理解为Series的容器。
  4. 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/)