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操作:

>>> 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 產生

  • 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
  • 其他