-
#預處理 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
提交
取消