Chapter 5 Python Rectangular Data
matrix與data frame兩個方形資料並不是Python的基本資料儲存類型,它只是基本類型的擴充。
matrix: 依賴
numpy
模組, list的延伸data frame: 依賴
pandas
模組, dict的延伸
5.1 Matrix
5.1.1 產生
以list方式輸入:
- 矩陣維度\(n\times m\): list有n個元素,每個元素又分別是個帶有m個元素的list, 以下面\(3\times 5\)矩陣為例:
\[M=\left[\begin{array}{ccccc} 7 & -9 & -5 & 10 & -13\\ 12 & -6 & -3 & -6 & -14\\ 7 & -5 & -4 & 1 & 5 \end{array}\right]\]
範例資料
5.1.2 元素粹取
- 比list多了方便的多維slicing
寫一個函數matrixList_slice()
:
matrixList_slice(matrix_list,slice_row,slice_col)
它可以用來對list進行如同np.arrary的二維slicing操作:
slice_row=range(0,2) # 0:2
slice_col=range(1,3) # 1:
np0[0:2,1:] # 1、2 rows,2、3 cols
matrixList_slice(matrix_list, slice_row, slice_col)
>>> np0[0:2,1:] # 1、2 rows,2、3 cols
array([[ 9, 7],
[ 4, -10]])
>>> matrixList_slice(matrix_list, slice_row, slice_col)
[[9, 7], [4, -10]]
5.2 Data frame
5.2.1 產生
dict_rect['dataFrame']={
'學號': [172,214,322,425,517],
'姓名': ["小明","大雄","胖虎","小新","大白"],
'成績': [80,60,90,70,50]
}
df0=pd.DataFrame(dict_rect['dataFrame'])
df0元素位置可用以下三種特徵值來代表:
label: 指欄位名稱,如:學號,姓名,成績
position: 指第幾行、第幾列
index: data frame df0 最左側的資訊,目前是0,1,2,3,4.
index可以自訂,其值可重覆:
index可事後更改:
5.2.2 元素粹取
dictionary只能用key來取元素,元素值若為list接著用index來取進一步值,而data frame 多了:
.loc[ ]
來取對應label的欄位
.iloc[ ]
來取對應position的row/col
- 其他