python——numpy學習筆記
numpy
學習目錄
- numpy
- numpy概述
- ndarray陣列
- ndarray陣列的基本索引和切片,以及布林索引
- Brodcasting:ndarray的向量化計算
- ndarray陣列的淺拷貝與深拷貝
- ndarray陣列的轉置和軸對換
- ndarray陣列重塑
- ndarray陣列的拆分和合並
- ndarray陣列的元素重複操作
- ndarray陣列的新增和移除
- 矩陣的翻轉與旋轉
- Structured Arrays:結構化陣列
- frompyfunc:函式向量化
- Finding Pattern
- numpy中的隨機數生成
- ndarray常用的統計方法
- numpy中的線性代數
- numpy與matplotlib結合
- 矩陣matrix
- 程式碼示例(思維導圖)
numpy概述
執行速度快(C語言編寫)
功能用途:陣列運算
- 強大的N維陣列物件ndarray
- 廣播功能函式
- 線性代數、傅立葉變換、隨機數生成等
ndarray陣列
ndarray陣列:
N維陣列物件(矩陣),所有元素必須是相同的型別
建立ndarray陣列函式:
array:將輸入資料轉換為ndarray
arange:返回一個ndarray而不是列表
ones:建立一個全1陣列
zeros:建立一個全0陣列
empty:建立新陣列
eye:建立一個N*N的單位矩陣(對角線為1,其餘為0)
linspace:建立等差陣列
ndarray屬性:
ndim:表示維度個數
shape:表示各維度大小
dtype:表示資料型別
size:表示陣列大小
len:表示陣列長度
itemsize:
指定ndarray陣列元素的型別
ndarray陣列的基本索引和切片,以及布林索引
基本索引和切片
與Python列表的索引功能類似
boolean mask
通過關係式找陣列中需要的元素
boolean mask:布林索引,使用布林陣列作為索引
Brodcasting:ndarray的向量化計算
對broadcasting理解
- 廣播機制:numpy中array的一個重要操作,對不同shape的陣列進行數值計算的方式,通過擴充套件陣列的方法實現,即兩個陣列對應位元素之間的相加、相減以及相乘的操作(相乘操作區分於線性代數中的矩陣相乘)
- 原則:陣列維度不同,但後緣維度的軸長相符,或其中一方的長度為1。後緣長度:從末尾開始算起的維度
- 原理:擴充套件陣列
ndarray陣列的淺拷貝與深拷貝
view:檢視
資料的引用,通過改引用可訪問、操作原資料。
函式:view
淺拷貝:
=
運算子:賦值,為淺拷貝
深拷貝:
copy
copyto
ndarray陣列的轉置和軸對換
陣列的轉置/軸對換隻會返回源資料的一個檢視,不會對源資料進行修改。
函式:
transpose
swapaxes
rollaxis
ndarray陣列重塑
函式:
reshape 陣列重塑,返回的是檢視,會影響原始矩陣
ravel:將多維陣列轉換為一維陣列,返回的是檢視,會影響原始矩陣
flatten:將多維陣列轉換為一維陣列,返回的是拷貝
flat:將陣列轉換為一維的迭代器,可以用for訪問陣列中的每一個元素
ndarray陣列的拆分和合並
函式:
concatenate:沿一條軸連線一組陣列
stack:指定維度對陣列進行堆疊
split:沿指定軸在指定的位置拆分陣列
ndarray陣列的元素重複操作
函式:
tile:以整個陣列為單位的重複
repeat:以元素為單位的重複
ndarray陣列的新增和移除
新增
append:將值賦加到陣列的末尾
stack:按照不同軸的堆疊方式重新堆疊陣列
insert:在指定軸上的對應位置插入元素
移除
delete:按指定軸刪除元素,所有操作都在副本中進行
矩陣的翻轉與旋轉
函式:
fliplr:左右翻轉。適用場景:圖片左右翻轉
flipud:上下翻轉
roll:以指定維度滾動N個元素
rot90:矩陣旋轉90°或90°的倍數
Structured Arrays:結構化陣列
作用:將不同資料型別(一般有關聯性)寫入一個矩陣中
設定 建立ndarray陣列函式中的 dtype引數
frompyfunc:函式向量化
ufunc的普通用法:通用函式的點對點操作
作用:將計算單個值的函式轉化為計算陣列中每個元素的函式,基於陣列運算的函式,產生一個新的函式
缺點:因為這樣的用法涉及大量的函式呼叫,因此,向量化函式的效率並不高
Finding Pattern
函式:
diff:沿指定軸計算第N位的離散差值
numpy中的隨機數生成
函式:(import numpy.random)
seed:確定隨機數生成器的種子
rand:產生均勻分佈的樣本值
randint:從給定的上下限範圍內隨機選取整數
randn:產生正態分佈(平均值為0,標準差為1)的樣本值
binomial:產生二項分佈的樣本值
normal:產生正態分佈(高斯)的樣本值
beta:產生Beta分佈的樣本值
chisquare:產生卡方分佈的樣本值
gamma:產生Gamma分佈的樣本值
uniform:產生在[0,1]中均勻分佈的樣本值與for迴圈結合使用
ndarray常用的統計方法
函式:
sum:對陣列中全部或某軸向的元素求和。零長度的陣列sum為0
mean:算數平均數。零長度的陣列mean為NaN
std、var:標準差、方差
min、max:最大值、最小值
argmin、argmax:最大、最小元素的索引
cumsum:所有元素的累計和
cumprod:所有元素的累計積
numpy中的線性代數
函式(import numpy.linalg):
diag:以一維陣列的形式返回方陣的對角線(或非對角線)元素,或將一維陣列轉換為方陣(非對角線元素為0)
dot:矩陣乘法
trace:計算對角線元素的和
det:計算矩陣行列式
eig:計算方陣的本徵值和本徵向量
inv:計算方陣的逆
pinv:計算矩陣的Moore-Penrose偽逆
qr:計算QR分解
svd:計算奇異值分解(SVD)
solve:解線性方程組Ax=b,其中A為一個方陣
lstsq:計算Ax=b的最小二乘解
numpy與matplotlib結合
矩陣matrix
程式碼示例(思維導圖)
將所有知識點的程式碼示例及結果 以 思維導圖 方式展現
實驗平臺:Jupyter Notebook
百度雲連結: 思維導圖
提取碼:16in
相關文章
- Numpy學習筆記筆記
- numpy的學習筆記\pandas學習筆記筆記
- Numpy學習筆記 1筆記
- 【numpy學習筆記】 Array processing筆記
- 【numpy學習筆記】矩陣操作筆記矩陣
- numpy學習筆記 – numpy陣列的常見用法筆記陣列
- python_numPy學習Python
- Python學習筆記Python筆記
- 【學習筆記】python筆記Python
- Python資料分析 numpy 筆記Python筆記
- 【numpy學習筆記】陣列的切片,索引,迭代筆記陣列索引
- (五)numpy知識學習2-python資料分析與機器學習實戰(學習筆記)Python機器學習筆記
- Python NumPy學習總結Python
- python學習筆記(1Python筆記
- Python學習筆記 - queuePython筆記
- Effective Python學習筆記Python筆記
- python——Matplotlib學習筆記Python筆記
- python學習筆記4Python筆記
- Python學習筆記 - asyncioPython筆記
- Python 學習筆記(一)Python筆記
- Python學習筆記 - aiohttpPython筆記AIHTTP
- python學習筆記(二)Python筆記
- Python學習筆記(2)Python筆記
- Python學習筆記(三)Python筆記
- Python學習筆記|Python之程式Python筆記
- 【numpy學習筆記】陣列的建立和基本運算筆記陣列
- 【numpy學習筆記】陣列的儲存和下載筆記陣列
- 01_Numpy學習筆記(下):輸入和輸出筆記
- Python學習筆記—程式碼Python筆記
- Python學習筆記 - 閉包Python筆記
- Python學習筆記 - 作用域Python筆記
- Python學習筆記 - 變數Python筆記變數
- Python學習筆記 - 多程式Python筆記
- Python學習筆記 - time, datetimePython筆記
- Python學習筆記 - if語句Python筆記
- Python學習筆記——turtle庫Python筆記
- python-pygame學習筆記PythonGAM筆記
- Python基礎學習筆記Python筆記