本篇文章給大家分享了關於Python資料處理的相關內容以及要點解釋,對此知識點有興趣的朋友可以參考學習下。
Numpy、Pandas是Python資料處理中常用到的兩個框架,都是採用C語言編寫,所以運算速度快。 Matplotlib是Python的的畫圖工具,可以把之前處理後的資料透過影像繪製出來。之前只是看過文法,沒有系統學習總結過,這篇部落格文章總結了這三個架構的API。
以下是這三個框架的簡單介紹和區別:
Numpy:經常用於資料生成和一些運算
Pandas:基於Numpy建構的,是Numpy的升級版本
#Matplotlib:Python中強大的繪圖工具
Numpy
Numpy快速入門教學可參考:Numpy tutorial
Numpy屬性
ndarray.ndim:維度
ndarray.shape:行數和列數,例如(3, 5)
#ndarray.size:元素的數量
Numpy建立
array(object, dtype=None):使用Python的list或tuple建立資料Numpy運算
#加、減:a b、a - bNumpy索引
#陣列索引方式:A[1, 1]
#。 ##切片:A[1, 1:3]
##reshape (a, newshape):改變資料形狀,不會對原始資料進行修改,傳回一組新資料
resize(a, new_shape):改變資料形狀,會對原始資料進行修改,不回傳資料
hstack(tup):左右合併
hsplit(ary, indices_or_sections):水平分割n份##vsplit(ary, indices_or_sections):垂直分割n份
copy(a) :深度拷貝Pandas
Pandas快速入門教學可參考:10 Minutes to pandas##Pandas資料結構Pandas的資料結構有兩種:Series和DataFrame。
Series:索引在左邊,值在右邊。建立方式如下:
In [4]: s = pd.Series([1,3,5,np.nan,6,8])
In [5]: s
Out[5]:
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
DataFrame:是一個表格型的資料結構,既有行索引也有列索引, 它可以被看做由Series組成的大字典。建立方式如下:
In [6]: dates = pd.date_range('20130101', periods=6) In [7]: dates Out[7]: DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'], dtype='datetime64[ns]', freq='D') In [8]: df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
Pandas檢視資料
index:索引
columns:列索引
values:值
head(n=5):傳回前n項資料
describe():列印出資料的數量、平均值等各項資料
sort_index(axis=1, ascending= False):根據索引排序
sort_values(by='B'):根據索引值排序
Pandas選擇資料
數組選擇方式:df['A']
切片選擇方式:df[0:3] 或df['20130102':'20130104']
依位置選擇:df.iloc[3:5,0:2]
混合選擇:df.ix[:3,['A','C']]
#條件判斷選擇:df[df.A > 0]
刪除遺失資料的行:df.dropna(how='any')
填入遺失數據:df.fillna(value=5)
資料值是否為NaN:pd.isna(df1)
##Pandas合併資料
#pd.concat([df1, df2, df3], axis=0):合併df
pd.merge(left, right, on='key'):依據key欄位合併
df.append(s, ignore_index=True):新增資料
Pandas導入導出
pd.read_csv('foo.csv'):從csv檔讀取
df.to_excel('foo.xlsx', sheet_name='Sheet1'):儲存到excel檔案pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA']):從excel檔案讀取
Matplotlibimport pandas as pd import numpy as np import matplotlib.pyplot as plt # 随机生成1000个数据 data = pd.Series(np.random.randn(1000),index=np.arange(1000)) # 为了方便观看效果, 我们累加这个数据 data.cumsum() # pandas 数据可以直接观看其可视化形式 data.plot() plt.show()
淺聊python日誌的設定檔路徑問題
################################################### #以上是淺析Python資料處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!