【pandas】第一章 預備知識
【pandas】第一章 預備知識
Datawhale提供的pandas學習的開源地址:Joyful Pandas
https://datawhalechina.github.io/joyful-pandas/build/html/%E7%9B%AE%E5%BD%95/ch1.html
目錄
一、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
相關文章
- datawhale打卡 第一章 預備知識
- Java預備知識Java
- FutureTask原始碼解析(1)——預備知識原始碼
- 資料探勘比賽預備知識
- Python 入門【預備知識】---- Python 簡介Python
- 爬蟲必須得會的預備知識爬蟲
- Identity Server 4 預備知識 -- OpenID Connect 簡介IDEServer
- Identity Server 4 預備知識 -- OAuth 2.0 簡介IDEServerOAuth
- python中pandas的知識點整理Python
- 知識儲備
- jQuery第一章知識點jQuery
- 【筆記】動手學深度學習-預備知識筆記深度學習
- SQL隱碼攻擊預備知識-sql基礎SQL
- Android小知識-剖析Retrofit前的預備知識(靜態代理與動態代理)Android
- MYSQL常備知識MySql
- ASP.NET Core的實時庫: SignalR -- 預備知識ASP.NETSignalR
- 預備知識-python核心用法常用資料分析庫(上)Python
- Pandas知識點彙總(2)——布林索引索引
- 學習Identity Server 4的預備知識 (誤刪, 重補)IDEServer
- css必備知識點CSS
- 必備知識點 模版
- 必備知識點 路由路由
- LayIM.AspNetCore Middleware 開發日記(二)預備知識介紹NetCore
- Linux 核心預備知識:淺析 offsetof 巨集以及新手的所思所想Linux
- 【爬蟲】第一章-Web基礎知識爬蟲Web
- 前端必備知識點—SVG前端SVG
- 必備知識點 檢視
- 網路基礎必備知識
- OpenStack必備基礎知識
- 6個冷門但實用的pandas知識點
- 使用ASP.NET Core開發GraphQL伺服器 -- 預備知識(下)ASP.NET伺服器
- 使用ASP.NET Core開發GraphQL伺服器 -- 預備知識(上)ASP.NET伺服器
- 用ASP.NET Core 2.0 建立規範的 REST API -- 預備知識ASP.NETRESTAPI
- 用ASP.NET Core 2.0 建立規範的 REST API -- 預備知識 (2) + 準備專案ASP.NETRESTAPI
- linux基礎知識整理(備忘)Linux
- 必備知識點 模型層ORM模型ORM
- 安裝Linux之前必備知識Linux
- ASQ備考重點知識分享