-
#预处理 from sklearn.datasets import load_iris iris = load_iris() from sklearn.cross_validation import train_test_split train_data, test_data, train_target, test_target = train_test_split(iris.data, iris.target, \ test_size=0.2, random_state=1) #划分训练集与验证集 #建模:分类器 from sklearn import tree clf = tree.DecisionTreeClassifier(criterion="entropy") clf.fit(train_data, train_target) y_pred = clf.predict(test_data) #验证 from sklearn import metrics print(metrics.accuracy_score(y_true=test_target,y_pred=y_pred) #准确率 print(metrics.confusion_matrix(y_true=test_target,y_pred=y_pred)) #混淆矩阵:横轴实际,纵轴预测 #结果输出到文件 with open("","w") as fw: tree.export_graphviz(clf, out_file=fw)
查看全部 -
#定义时间序列 s = pd.Series([i*2 for i in range(1,11)]) dates = pd.date_range("20170301",periods=8) #从20170301开始的8天 #第一种定义表的方式:8行5列,索引值(行名)是dates,属性值(列名)是A~E df = pd.DataFrame(np.random.randn(8,5),index=dates,columns=list("ABCDE")) #第二种定义表的方式: df.DataFrame({"A":1,"B":pd.Timestamp("20170301"),"C":pd.Series(1,index=list(range(4)),dtype="float32"),\ "D":np.array([3]*4,dtype="float32"),"E":pd.Categorical(["police","student","teacher","doctor"])}) print(df.head(3)) #打印前三行 print(df.tail(3)) #打印后三行 print(df.index) print(df.values) #打印结果是数组 print(df.T) #索引和属性互换 print(df.sort(columns="C")) print(df.sort_index(axis=1,ascending=False)) #对列索引(axis=1-->属性值)进行降序排序 print(df.describe()) #打印出count、mean、std、min、max、25%、50%、75% #切片 print(df["A"]) #A列 print(df[:3]) #前三行 print(df["20170301":"20170304"]) print(df.loc[dates[0]]) print(df.loc["20170301":"20170304",["B","D"]]) print(df.at[dates[0],"C"]) print(df.iloc[1:3,2:4]) print(df.iloc[1,4]) print(df.iat[1,4]) print(df[df.B>0][df.A<0]) print(df[df>0]) #小于0的返回NaN print(df[df["E"].isin([1,2])]) #设置 s1 = pd.Series(list(range(10,18)),index=pd.date_range("20170301",periods=8)) df["F"] = s1 df.at[dates[0],"A"]=0 df.loc[:,"D"] = np.array([4]*len(df)) #拷贝 df2 = df.copy() df2[df2>0] = -df2 print(df2) #缺失值处理 df1 = df.reindex(index=dates[:4],columns=list("ABCD")+["G"]) df1.loc[dates[0]:dates[1],"G"] = 1 print(df1.dropna()) #删除缺失值所在行 print(df1.fillna(value=2)) #缺失值填充2 #统计指标 print(df.mean()) #每列的平均值 print(df.var()) s = pd.Series([1,2,3,np.nan,5,7,9,10],index=dates) print(s.shift(2)) #所有值后移两位,前两位补NaN,多的值删除 print(s.diff()) #不填表示一阶,填的数字表示多阶 print(s.calue_counts()) #每个值出现的次数 print(df.apply(np.cumsum)) print(df.apply(lambda x:x,max()-min())) #表的拼接 pieces = [df[:3],df[-3:]] left = pd.DataFrame({"key":["x","y"],"value":[1,2]}) right = pd.DataFrame({"key":["x","z"],"value":[3,4]}) print(pd.merge(left,right,on="key",how="left")) #how="inner":所有缺失值都删掉;"outer"所有缺失值都保留 df3 = pd.DataFrame({"A":["a","b","c","b"],"B":list(range(4))}) print(df3.groupby("A").sum()) #将A列每种属性值求和
查看全部 -
numpy:数据结构基础
scipy:强大的科学计算方法(矩阵分析、信号分析、数理分析....)
matplotlib:丰富的可视化套件(三维图、饼图、可视图等)
pandas:基础数据分析套件(表)
scikit-learn:强大的数据分析建模库(回归分析 、聚类分析)
keras:人工神经网络
查看全部 -
数据分析用的各种包
查看全部 -
1查看全部
-
#numpy技巧 concatenate((lst1, lst2), axis=0) #横向追加 hstack((lst1, lst2)) vstack((lst1, lst2)) #纵向追加 split(lst1, 4) #把lst1数组分成4份 solve(x, y) #x*b=y,解方程得b #matplotlib绘图 import numpy as np import matplotlib.pyplot as plt x = np.linspace(-np.pi, np.pi, 256, endpoint=True) c, s = np.cos(x), np.sin(x) plt.figure(1) plt.plot(x, c, color="blue", linewidth=1.0, line, label="COS", alpha=0.5) plt.plot(x, s, "r*", label="SIN") #红色* plt.title("COS $ SIN") ax = plt.gca() #轴的编辑器 ax.spines["right"].set_color("none") #隐藏上、右两个外框 ax.spines["top"].set_color("none") ax.spines["left"].set_position(("data",0)) #将下、左两个外框设置到数据域的0位置 ax.spines["bottom"].set_position(("data",0)) ax.xaxis.set_ticks_position("bottom") #坐标轴的数字显示在横轴下面和纵轴左面 ax.yaxis.set_ticks_position("left") #设置坐标轴[标识的位置], [标识的内容] plt.xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi], [r'$-\pi$', r'-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$'] plt.yticks(np.linspace(-1, 1, 5, endpoint=True)) for label in ax.get_xticklabels()+ax.get_yticklabels(): label.set_fontsize(16) label.set_bbox(dict(facecolor="white", edgecolor="None", alpha=0.2) #facecolor背景颜色,edgecolor边缘颜色,alpha透明度 plt.legent(loc="upper left") plt.grid() plt.axis([-1, 1,-0.5, 1) #设置显示范围 plt.fill_between(x, np.abs(x)<0.5, c, c>0.5, color="green", alpha=0.25) #填充功能 #c>0.5时才填充,且填充的范围是|x|<0.5与c之间。|x|<0.5时-->1,填充c到1之间;|x|>=0.5时-->0,填充0到c之间 t=1 plt.plot([t, t], [0, np.cos(t)], "y", linewidth=3, line) #添加注释(y代表黄色) plt.annotat("cos(1)", xy=(t, np.cos(1)), xycoords="data", xytxt=(+10, +30), textcoords="offset points", arrowprops=dict(arrow, connection)) # plt.show() #matplotlib绘制散点图 fig = plt.figure() ax = fig.add_subplot(3, 3, 1) n = 128 X = np.random.normal(0, 1, n) Y = np.random.normal(0, 1, n) T = np.arctan2(Y, X) #plt.axes([0.025, 0.025, 0.95, 0.95]) ax.scatter(X, Y, s=75, c=T, alpha=0.5) #s:size,c:color plt.xlim(-1.5, 1.5), plt.xticks([]) plt.ylim(-1.5, 1.5), plt.yticks([]) plt.axis() plt.title("scatter") plt.xlabel("x") plt.ylabel("y") plt.show()
查看全部 -
numpy:数据结构基础
scipy:强大的科学计算方法(矩阵分析、信号分析、数理分析....)
matplotlib:丰富的可视化套件(三维图、饼图、可视图等)
pandas:基础数据分析套件(表)
scikit-learn:强大的数据分析建模库(回归分析 、聚类分析)
keras:人工神经网络
科学计算工具Anaconda
查看全部 -
查看全部
-
查看全部
-
#pandas数据分析官网:
http://pandas.pydata.org/查看全部 -
#matplotlib画图功能 #line impor numpy as np def main(): import matplotlib.pyplot as plt x=np.linspace(-np.pi,np.pi,256,endpoint=Ture) c,s=np.cos(x),np.sin(x) plt.figure(1) plt.plot(x,c,color="blue",linewidth=1.0,line,label="COS",alpha=0.5) plt.plot(x,s,"r*",label="SIN") plt.title("COS&SIN") ax=plt.gce() ax.spines["right"].set_color("none") ax.spines["top"].set_color("none") ax.spines["left"].set_position(("data",0)) ax.spines["bottom"].set_position(("data",0)) ax.xaixs.set_ticks_position("bottom") ax.yaxis.set_ticks_position("left") plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$,r'$-\pi/2$,r'$0$,r'$+\pi/2$,r'$+\pi$']) plt.yticks(np.linspace(-1,1,5,endpoint=Ture)) for lable in ax.get_xtickelables()+ax.get_yticklable(): lable.set_fontsize(16) lable.set_bbox(dict(facecolor="white",edgecolor="None",alpha=0.2)) plt.legend(loc="upper left") plt.grid() plt.fill_between(x,np.abs(x)<0.5,c,c>0.5,color="green",alpha=0.25) t=1 plt.plot([t,t],[0,np.cos(t)],"y",linewidth=3,linestyle='--') plt.annotate("cos(1)",xy=(t,np.cos(1),xycoords="data",xytext=(+10,+30),textcoords="offset points",arrowprpos=(arrow,connectionstule="arc3,rad=.2") plt.show() if __name__=="__main__":
查看全部 -
#matplotlib画图功能 #bar def main(): import matplotlib pyplot as plt fig.add_subplot(332) n=10 X=np.arange(n) Y1=(1-X/float(n)*np.random.uniform(0.5,1.0,n) Y2=(1-X/float(n)*np.random.uniform(0.5,1.0,n) plt.bar(X,+Y1,facecolor='#9999ff',edgecolor='white') plt.bar(X,-Y2,facecolor='#ff9999',edgecolor='white') for x,y in zip(X,Y1): plt.text(x+0.4,y+0.05,'%2f'%y,ha='center',va='bottom') plt.text(x+0.4,-y-0.05,'%2f'%y,ha='center',va='bottom') plot.show() if_name_=="_main_"; main()
查看全部 -
#matplotlib 画图功能 # scatter def main(): import matplotlib pyplot as plt fig=plt.figure() fig.add_subpolt(3,3,1) n=128 X=np.random.normal(0,1,n) Y=np.random.normal(0,1,n) T=np.arctan2(Y,X) plt.axes([0.025,0.025,0.95,0.95]) plt.scatter(X,Y,s=75,c=T,alpha=.5) plt.xlim(-1.5,1.5),plt.xticks([]) plt.ylim(-1.5,1.5),plt.yticks([]) plt.axis() plt.title("scatter") plt.xlabel("x") plt.ylable("y") plt.show() if_name_=="_main_"; main()
查看全部 -
快乐查看全部
-
python之数据分析概述:
python数据分析大家族:
① numpy:数据结构基础
② scipy:强大的科学计算方法(矩阵分析、信号分析、数理分析....)
③ matplotlib:丰富的可视化套件(三维图、饼图、可视图等)
④ pandas:基础数据分析套件(表)
⑤ scikit-learn:强大的数据分析建模库(回归分析 、聚类分析)
⑥ keras:人工神经网络
查看全部
举报
0/150
提交
取消