值得一看的Python高效能資料處理

烟雨青岚
發布: 2020-06-16 17:31:59
轉載
2500 人瀏覽過

值得一看的Python高效能資料處理

#值得一看的Python高效資料處理

Pandas是Python中非常常用的資料處理工具,使用起來非常方便。它建立在NumPy數組結構之上,因此它的許多操作透過NumPy或Pandas自帶的擴展模組編寫,這些模組用Cython編寫並編譯到C,並且在C上執行,因此也保證了處理速度。

今天我們就來體驗它的強大之處。

1.創建資料

使用pandas可以很方便地進行資料創建,現在讓我們建立一個5列1000行的pandas DataFrame:

mu1, sigma1 = 0, 0.1 mu2, sigma2 = 0.2, 0.2 n = 1000df = pd.DataFrame( { "a1": pd.np.random.normal(mu1, sigma1, n), "a2": pd.np.random.normal(mu2, sigma2, n), "a3": pd.np.random.randint(0, 5, n), "y1": pd.np.logspace(0, 1, num=n), "y2": pd.np.random.randint(0, 2, n), } )
登入後複製
  • a1和a2:從常態(高斯)分佈中抽取的隨機樣本。
  • a3:0到4中的隨機整數。
  • y1:從0到1的對數刻度均勻分佈。
  • y2:0到1中的隨機整數。

產生如下所示的資料:

#2.繪製影像

Pandas 圖函數傳回一個matplotlib的座標軸(Axes),所以我們可以在上面自訂繪製我們所需要的內容。比如說畫一條垂線和平行線。這將非常有利於我們:

1.繪製平均線

2.標記重點的點

import matplotlib.pyplot as plt ax = df.y1.plot() ax.axhline(6, color="red", linestyle="--") ax.axvline(775, color="red", linestyle="--") plt.show()
登入後複製

我們也可以自訂一張圖上顯示多少表:

fig, ax = plt.subplots(2, 2, figsize=(14,7)) df.plot(x="index", y="y1", ax=ax[0, 0]) df.plot.scatter(x="index", y="y2", ax=ax[0, 1]) df.plot.scatter(x="index", y="a3", ax=ax[1, 0]) df.plot(x="index", y="a1", ax=ax[1, 1]) plt.show()
登入後複製

#3.繪製直方圖

Pandas能夠讓我們用非常簡單的方式獲得兩個圖形的形狀對比:

df[["a1", "a2"]].plot(bins=30, kind="hist") plt.show()
登入後複製

#還能允許多圖繪製:

df[["a1", "a2"]].plot(bins=30, kind="hist", subplots=True) plt.show()
登入後複製

當然,產生折線圖也不在畫下:

df[['a1', 'a2']].plot(by=df.y2, subplots=True) plt.show()
登入後複製

4.線性擬合

Pandas還能用來擬合,讓我們用pandas找出一條與下圖最接近的直線:

#最小平方法計算和該直線最短距離:

df['ones'] = pd.np.ones(len(df)) m, c = pd.np.linalg.lstsq(df[['index', 'ones']], df['y1'], rcond=None)[0]
登入後複製

根據最小二乘的結果繪製y和擬合出來的直線:

df['y'] = df['index'].apply(lambda x: x * m + c) df[['y', 'y1']].plot() plt.show()
登入後複製

感謝大家的閱讀,希望大家收益多多。

本文轉自:https://blog.csdn.net/u010751000/article/details/106735872

推薦教學:《python教學

以上是值得一看的Python高效能資料處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!