python學習第04篇-20181031
阿新 • • 發佈:2018-12-13
今天學習的是python的資料分析相關的工具,比如Numpy, Scipy, Pandas三個包的一些基本用法,筆記如下:
''' Numpy Numpy的資料結構是n維的陣列物件,叫做ndarry 基本操作: import numpy as np data1 = [1,2,3,4,5] array1 = np.array(data1) # 將列表轉成Numpy中的陣列 # 多維陣列 data2 = [[1,2,3],[4,5,6]] array2 = np.array(data2) # 檢視array陣列的型別 array2.dtype # 轉換資料格式 array1.astype('str') # array1陣列的批量+1 array1 + 1 # array1之間對應元素相乘 array1 * array1 # array1陣列全部 * 2 array1 * 2 Pandas: 資料結構:除了pabel資料結構,還引入 Series和DataFrame, 這兩種資料結構都建立在Numpy的基礎之上 Series:一維陣列系列,又稱序列,與Numpy中的一維array相似 DataFrame:二維的表格型資料結構,可以將DataFrame理解為Series的容器 Panel:三維陣列,可以理解為DataFrame的容器 ''' """ 資料準備: 一、資料型別 python 常用的3種資料型別:Logical , Numeric , Character 1.Logical(邏輯型) & 與 | 或 not 非 2.Numeric(數值型) 數值運算子有:+ - * 和 / 3.Character(字元型) 字元型資料一般使用單引號或者雙引號包起來 python資料型別變數命名: 1.字母,下劃線與數字 下劃線與數字不能開頭 2.大小寫敏感 3.變數名不能是python保留字 二、資料結構 1.Series 系列,也稱序列,用於儲存一行或一列的資料,以及與之相關的索引集合 使用方法如下: Series([資料1, 資料2, ...], index=[索引1, 索引2, ...]) Y = Series(['a','b','c','d']) 'a' in Y.values Y.append(Series('e')) 追加序列,不能追加單個值 Y[1:3] 切片 Y[0,2,3] 定位獲取index為0,2,3的值 Y.drop(0) 按照索引號刪除 Y.drop('first') 按照所以名刪除 Y.index[2] 按照索引號查詢索引名 Y.drop(Y.index[3]) 根據位置刪除,返回新的序列 # 通過值訪問系列index Y.index[Y.values == 'a'] ---> Index(['first'], dtype='object') # 通過賦值修改Series中的index,也可以通過reindex方法 Y.index = [1,2,3,4] ---> 索引個數與元素個數對應 # 字典轉化為Series s = Series({'a':1 x.index[x.values == 'a'], 'b':2, 'c':3}) # reindex obj = Series([4.5,2.6,3.7,-5.3],index=['d','b','a','c']) obj2 = obj.reindex(['a','b','c','d']) 結果: a 3.7 b 2.6 c -5.3 d 4.5 dtype: float64 # 索引數目超過元素個數 obj2 = obj.reindex(['a','b','c','d','e']) 結果: a 3.7 b 2.6 c -5.3 d 4.5 e NaN dtype: float64 obj2 = obj.reindex(['a','b','c','d','e'], fill_value=0) 結果: a 3.7 b 2.6 c -5.3 d 4.5 e 0.0 dtype: float64 """ ''' Series物件本質是一個Numpy的陣列(矩陣),因此Numpy的陣列處理函式可以直接對Series進行處理。 但是Series除了使用下標存取元素之外,還可以使用標籤存取元素,這一點與字典相似。 每個Series物件實際上由下面兩個陣列組成: index:從Numpy繼承的index物件,儲存標籤資訊 values:儲存值的Numpy陣列 '''