6.1聚类分析
scipy的cluster模块中的vq
安装scipy: pip install scipy
根据学生成绩对几名学生进行聚类分类,使用k-means算法,scipy自带的
import numpy as np
from scipy.cluster.vq import vq,kmeans,whiten
list1=[88.0,74.0,96.0,85.0]
list2=[92.0,99.0,95.0,94.0]
list3=[91.0,87.0,99.0,95.0]
list4=[78.0,99.0,97.0,95.0]
list5=[88.0,78.0,98.0,84.0]
list6-[100.0,95.0,100.0,92.0]
data=np.array([list1,list2,list3,list4,list5,list6])
whiten=whiten(data)#whiten函数:算出数据的标准差
centroids,_=kmeans(whiten,2)#使用kmeans函数,返回聚类中心数组
result,_=vq(whiten,centroids)#vq:矢量量化函数
print(result)
output:
[1 0 0 1 1 0]
使用sklearn的KMeans
安装sklearn:
先安装matplotlib:pip install matplotlib
安装sklearn:pip install -U scikit-learn
>>> from sklearn.cluster import KMeans
>>> import numpy as np
>>> list1=[88.0,74.0,96.0,85.0]
>>> list2=[92.0,99.0,95.0,94.0]
>>> list3=[91.0,87.0,99.0,95.0]
>>> list4=[78.0,99.0,97.0,81.0]
>>> list5=[88.0,78.0,98.0,84.0]
>>> list6=[100.0,95.0,100.0,92.0]
>>> X=np.array([list1,list2,list3,list4,list5,list6])
>>> kmeans=KMeans(n_clusters=2).fit(X)#fit方法,对确定了类别之后的数据集进行聚类
>>> pred=kmeans.predict(X)#predict方法,根据聚类的结果确定所属的类别
>>> print(pred)
output:
[0 1 1 1 0 1]
6.2Matplotlib绘图基础
主要是二维绘图
绘图API-pyplot模块
继承库--pylab模块(包含Numpy和pyplot中的常用函数)
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x=np.linspace(0,1)
y=np.sin(4*np.pi*x)*np.exp(-5*x)
plt.plot(x,y)#绘制曲线图
show()#一定要写这句
plt.plot(x,y,'o')#绘制散点图
show()
plt.bar(x,y)#绘制柱状图
show()
6.3Matplotlib图像属性控制
import matplotlib.pyplot as plt
help(plt.plot)
x=closeMeansKO.index
y=closeMeansKO.values
plt.title('Stock Statistics of Coca-Cola')#给横纵坐标加上标签,给图加上标题
plt.xlabel('Month')
plt.ylabel('Average Close Price')
plt.plot(x,y)
#使用pylab
import pylab as pl
pl.figure(figsize=(8,6),dpi=100)
t=np.arange(0.,4,0.1)
pl.plot*(t,t,color='red',linestyle='-',linewidth=3,label='Line1')
pl.legend(loc='upper left')#把图例放在坐上方
#多子图
plt.subplot(211)#第一个参数和第二个参数表示了行和列数,第三个参数表示了是第几个子图,两行一列中第#一个子图
plt.subplot(212)
#子图axes
6.4pandas作图
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
x = np.linspace(0, 1)
y = np.sin(4 * np.pi * x) * np.exp(-5 * x)
t = pd.DataFrame(y, index = x)#直接使用DataFrame函数作图
t.plot()
箱型图
6.5数据存取
#csv格式数据存取
import pandas as pd
quotes=retrieve_quotes_historical('AXP')
df=pf.DataFrame(quotes)
df.to_csv('stockAXP.csv')
将表格放入DataFrame对象中
import numpy as np
import pandas as pd
lists=[['The rolling stones','Satisfaction'],['Beatles','Let It Be'],
["Gun N'Rose","Don't Cry"],['Metallica','Nothing Else Matters']]
df=pd.DataFrame(lists,columns=['Singer','Song'])
df.to_csv('Songs.csv')
#读数据
result=pd.read_csv('Songs.csv')
print(result['Song'])#打印出其中的一列
读/写excel文件
#写成.xlsx文件
quotes=retrieve_quotes_historical('AXP')
df=pd.DataFrame(quotes)
df.to_excel('stockAXP.xlsx',sheet_name='AXP')
#读取.xlsx文件
df=pd.read_excel('stockAXP.xlsx')
print(df['close'][:3])