【pandas】第一章 預備知識
Datawhale提供的pandas學習的開源地址:Joyful Pandas
https://datawhalechina.github.io/joyful-pandas/build/html/%E7%9B%AE%E5%BD%95/ch1.html
目錄
- 【pandas】第一章 預備知識
- 一、Python基礎
- 1. 串列推導式與條件賦值
- 2. 匿名函式與map方法
- 3. zip物件與enumerate方法
- 二、Numpy基礎
- 1. np陣列的構造
- 2. np陣列的變形與合并
- 3. np陣列的切片與索引
- 4. 常用函式
- 5. 廣播機制
- 6. 向量與矩陣的計算
- 三、練習
- 補漏
- 思考
一、Python基礎
1. 串列推導式與條件賦值
串列推導式:
[* for i in *] ,
其中,第一個 * 為映射函式,其輸入為后面 i 指代的內容,第二個 * 表示迭代的物件,

多層嵌套:第一個 for 為外層回圈,第二個為內層回圈

另一個實用的語法糖是帶有 if 選擇的條件賦值,其形式為value = a if condition else b :

例子:截斷串列中超過5的元素,即超過5的用5代替,小于5的保留原來的值:

2. 匿名函式與map方法
匿名函式

但上面的用法其實違背了“匿名”的含義,事實上它往往在無需多處呼叫的場合進行使用,例如上面串列推導式中的例子,用戶不關心函式的名字,只關心這種映射的關系:

對于上述的這種串列推導式的匿名函式映射, Python 中提供了 map 函式來完成,它回傳的是一個 map 物件,需要通過 list 轉為串列:

對于多個輸入值的函式映射,可以通過追加迭代物件實作:

3. zip物件與enumerate方法
zip函式能夠把多個可迭代物件打包成一個元組構成的可迭代物件,它回傳了一個 zip 物件,通過 tuple, list 可以得到相應的打包結果:

回圈迭代的時候使用到 zip 函式:

enumerate 是一種特殊的打包,它可以在迭代時系結迭代元素的遍歷序號:

等價于下述zip方式
for index, value in zip(range(len(L)), L):
print(index, value)
當需要對兩個串列建立字典映射時,可以利用 zip 物件:

解壓

二、Numpy基礎
1. np陣列的構造
迭代構造

特殊矩陣:zeros, eye, full

隨機矩陣: np.random
最常用的隨機生成函式:rand, randn, randint, choice 分別代表
0-1均勻分布的隨機陣列、標準正態的隨機陣列、隨機整陣列和隨機串列抽樣:
rand:0-1均勻分布的隨機陣列

對于服從區間 a 到 b 上的均勻分布可以如下生成:

生成了 N(0,I) 的標準正態分布:

對于服從方差為 σ2 均值為 μ 的一元正態分布可以如下生成:

randint 可以指定生成隨機整數的最小值最大值(不包含)和維度大小:

choice 可以從給定的串列中,以一定概率和方式抽取結果,當不指定概率時為均勻采樣,默認抽取方式為有放回抽樣:
無放回抽樣:replace=True
有放回抽樣:replace=False

當回傳的元素個數與原串列相同時,等價于使用 permutation 函式,即打散原串列:

最后,需要提到的是隨機種子,它能夠固定亂數的輸出結果:

2. np陣列的變形與合并
【a】轉置: T

【b】合并操作: r_, c_:
對于二維陣列而言, r_ 和 c_ 分別表示上下合并和左右合并:

【c】維度變換: reshape
注意對order的理解

3. np陣列的切片與索引
陣列的切片模式支持使用 slice 型別的 start: end:step 切片,還可以直接傳入串列指定某個維度的索引進行切片
取出不包括最后一行的,第0列和第2列:

此外,還可以利用 np.ix_ 在對應的維度上使用布爾索引,但此時不能使用 slice 切片:

4. 常用函式
【a】 where
where 是一種條件函式,可以指定滿足條件與不滿足條件位置對應的填充值:

【b】 nonzero, argmax, argmin
這三個函式回傳的都是索引, nonzero 回傳非零數的索引, argmax, argmin 分別回傳最大和最小數的索引:

【c】 any, all
any 指當序列至少 存在一個 True 或非零元素時回傳 True ,否則回傳 False
all 指當序列元素 全為 True 或非零元素時回傳 True ,否則回傳 False
【d】 cumprod, cumsum, diff
cumprod, cumsum 分別表示累乘和累加函式,回傳同長度的陣列, diff 表示和前一個元素做差,由于第一個元素為缺失值,因此在默認引數情況下,回傳長度是原陣列減1

【e】 統計函式
常用的統計函式包括 max, min, mean, median, std, var, sum, quantile ,其中分位數計算是全域方法,因此不能通過 array.quantile 的方法呼叫:
注意:但是對于含有缺失值的陣列,它們回傳的結果也是缺失值,如果需要略過缺失值,必須使用 nan* 型別的函式,上述的幾個統計函式都有對應的 nan* 函式,

對于協方差和相關系數分別可以利用 cov, corrcoef 如下計算:

5. 廣播機制

6. 向量與矩陣的計算



三、練習










補漏
- reshape中注意對order的理解:
order=‘C’ 按照行讀取和填充
order=‘F’ 按照列讀取和填充 - n np.ix_ 在對應的維度上使用布爾索引,但此時不能使用 slice 切片
- array. cumprod, cumsum, diff: 累乘、累加、差值
- 統計函式都有對應的 nan* 函式
- r_ 和 c_ 分別表示上下合并和左右合并
思考
在本篇中,本隊思考了這樣一個問題,對于axis多維度的理解:
通俗來講,逐個拿出或統計也就是按照維度下標逐一進行,如從axis=0,…,-1依次取出或計算第0個下標,到第-1個下標

像這個二維的,(2,3)其索引方式可以表示成上圖的形式,axis=0就是從第0個下標開始計算或統計,也就是從0到1;axis=1從第1個下標開始算,也就是從0到1到2
因此,在按照axis=0進行求和時我們會得到按列進行求和的結果,00+10,01+11,02+12
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/235489.html
標籤:python
上一篇:海選與包裝,Python中常用的兩個高階函式(講義)
下一篇:Python 飛機大戰搞怪版本
