国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python Numpy庫教程

這篇具有很好參考價值的文章主要介紹了Python Numpy庫教程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1 Numpy概述

1.1 概念

??Python本身含有列表和數(shù)組,但對于大數(shù)據(jù)來說,這些結(jié)構(gòu)是有很多不足的。由于列表的元素可以是任何對象,因此列表中所保存的是對象的指針。對于數(shù)值運算來說這種 結(jié)構(gòu)比較浪費內(nèi)存和CPU資源。至于數(shù)組對象,它可以直接保存 數(shù)值,和C語言的一維數(shù)組比較類似。但是由于它不支持多維,在上面的函數(shù)也不多,因此也不適合做數(shù)值運算。Numpy提供了兩種基本的對象:ndarray(N-dimensional Array Object)和 ufunc(Universal Function Object)。ndarray是存儲單一數(shù)據(jù)類型的多維數(shù)組,而ufunc則是能夠?qū)?shù)組進行處理的函數(shù)。

1.2 功能

  • 創(chuàng)建n維數(shù)組(矩陣)
  • 對數(shù)組進行函數(shù)運算,使用函數(shù)計算十分快速,節(jié)省了大量的時間,且不需要編寫循環(huán),十分方便
  • 數(shù)值積分、線性代數(shù)運算、傅里葉變換
  • ndarray快速節(jié)省空間的多維數(shù)組,提供數(shù)組化的算術(shù)運算和高級的 廣播功能。

1.3 對象

  • NumPy中的核心對象是ndarray
  • ndarray可以看成數(shù)組,存放同類元素
  • NumPy里面所有的函數(shù)都是圍繞ndarray展開的
    npyio,Python,python,矩陣,開發(fā)語言,人工智能,機器學習
    ndarray 內(nèi)部由以下內(nèi)容組成:
    ? 一個指向數(shù)據(jù)(內(nèi)存或內(nèi)存映射文件中的一塊數(shù)據(jù))的指針。
    ? 數(shù)據(jù)類型或 dtype,描述在數(shù)組中的固定大小值的格子。
    ? 一個表示數(shù)組形狀(shape)的元組,表示各維度大小的元組。形狀為(row×col)

1.4 數(shù)據(jù)類型

??numpy 支持的數(shù)據(jù)類型比 Python 內(nèi)置的類型要多很多,基本上可以和C語言的數(shù)據(jù)類型對應上主要包括int8、int16、int32、int64、uint8、uint16、uint32、uint64、float16、float32、float64

1.5 數(shù)組屬性

屬性 說明
ndarray.ndim 秩,即軸的數(shù)量或維度的數(shù)量
ndarray.shape 數(shù)組的維度(n×m),對于矩陣,n 行 m 列
ndarray.size 數(shù)組元素的總個數(shù),相當于 .shape 中 n*m 的值
ndarray.dtype ndarray 對象的元素類型
ndarray.itemsize ndarray 對象中每個元素的大小,以字節(jié)為單位
ndarray.flags ndarray 對象的內(nèi)存信息
ndarray.real ndarray元素的實部
ndarray.imag ndarray元素的虛部
ndarray.data 包含實際數(shù)組元素的緩沖區(qū),由于一般通過數(shù)組的索引獲取元素,所以通常不需要使用這個屬性。

2 Numpy數(shù)組操作

2.1 Numpy創(chuàng)建

2.1.1 利用列表生成數(shù)組

import numpy as np

lst = [1, 2, 3, 4]
nd1 = np.array(lst)
print(nd1, type(nd1))
#[1 2 3 4] <class 'numpy.ndarray'>

2.1.2 利用random模塊生成數(shù)組

下面是random模塊的一些常用函數(shù)
npyio,Python,python,矩陣,開發(fā)語言,人工智能,機器學習
使用如下:

import numpy as np
#0到1標準正態(tài)分布
arr1 = np.random.randn(3, 3)
#0到1均勻分布
arr2 = np.random.rand(3, 3)
#均勻分布的隨機數(shù)(浮點數(shù)),前兩個參數(shù)表示隨機數(shù)的范圍,第三個表示生成隨機數(shù)的個數(shù)
arr3 = np.random.uniform(0, 10, 2)
#均勻分布的隨機數(shù)(整數(shù)),前兩個參數(shù)表示隨機數(shù)的范圍,第三個表示生成隨機數(shù)的個數(shù)
arr4 = np.random.randint(0, 10, 3)
print(f'arr1 : {arr1}\narr2 : {arr2}\narr3 : {arr3}\narr4 : {arr4}')
out : 
# arr1 : [[-0.31637952 -0.08258995  1.43866984]
#  [-0.11216775  0.43881134  0.11745847]
#  [-1.1770306  -0.97657465  2.2368878 ]]
# arr2 : [[0.16350611 0.4467384  0.9465067 ]
#  [0.1882318  0.40261184 0.93577701]
#  [0.56243911 0.69179631 0.83407725]]
# arr3 : [4.41402883 6.03259052]
# arr4 : [9 7 7]

如果想使每次生成的數(shù)據(jù)相同,可以指定一個隨機種子

import numpy as np
np.random.seed(123)
arr = np.random.rand(2, 3)#[[0.69646919 0.28613933 0.22685145] [0.55131477 0.71946897 0.42310646]]
#打亂數(shù)組
np.random.shuffle(arr)#[[0.55131477 0.71946897 0.42310646] [0.69646919 0.28613933 0.22685145]]

2.1.3 創(chuàng)建特定形狀數(shù)組

主要有如下幾種:
npyio,Python,python,矩陣,開發(fā)語言,人工智能,機器學習

import numpy as np

#未初始化的數(shù)組
arr1 = np.empty((2,3))
#數(shù)組元素以 0 來填充
arr2 = np.zeros((2, 3))
#數(shù)組元素以 1 來填充
arr3 = np.ones((2, 3))
#數(shù)組以指定的數(shù)來進行填充,這里舉例3
arr4 = np.full((2, 3), 3)
#生成單位,對角線上元素為 1,其他為0
arr5 = np.eye(2)
#二維矩陣輸出矩陣對角線的元素,一維矩陣形成一個以一維數(shù)組為對角線元素的矩陣
arr6 = np.diag(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]))

??在創(chuàng)建給定長度的等差數(shù)列時,要注意的是np.linspace形成的數(shù)組一定包括范圍的首位兩個元素,則步長為(end - start) / (length - 1)。而np.arange是自己指定的步長(默認為1)也就意味著形成的數(shù)組不一定包括末尾數(shù)

arr7 = np.linspace(0, 1, 4) #out : array([0.        , 0.33333333, 0.66666667, 1.        ])
arr8 = np.arange(0, 9, 2) #out : array([0, 2, 4, 6, 8])

2.2 索引和切片

??Numpy可以通過索引或切片來訪問和修改,與 Python 中 list 的切片操作一樣,設置start, stop 及 step 參數(shù)。

2.2.1 元素表示

??Numpy數(shù)組的下標表示與list是一樣的,對于矩陣來說,要注意中括號里要用逗號將行和列的表示進行分隔?;镜谋硎痉椒ㄈ缦聢D,左邊為表達式,右邊為表達式獲取的元 素。注意,不同的邊界,表示不同的表達式。
npyio,Python,python,矩陣,開發(fā)語言,人工智能,機器學習
例子:
a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
a[0] : 指的是第一行
a[1, 2] 或者 a[1][2] : 全下標定位單個元素,在a中表示7這個元素

2.2.2 切片表示

??若a = np.arange(10),b = a[2 : 7 : 2]則表示從索引 2 開始到索引 7 停止,間隔為 2,即b為[2, 4, 6]。此外也可以通過切片操作來對元素進行修改,如:

a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
a[0 , 1 : 3] = 100, 101#a[0 , 1 : 3]表示第一行的第二列和第二列即[2, 3]
a #out : array([[  1, 100, 101], [  4,   5,   6], [  7,   8,   9]])

2.2.3 多維數(shù)組的切片

??NumPy的多維數(shù)組和一維數(shù)組類似。多維數(shù)組有多個軸。從內(nèi)到外分別是第0軸,第1軸,第2軸…切片后的數(shù)據(jù)與切片前的數(shù)據(jù)共享原數(shù)組的儲存空間
npyio,Python,python,矩陣,開發(fā)語言,人工智能,機器學習
當然,切片操作是針對我們想要獲取的數(shù)據(jù)是連續(xù)的,如果我們想要獲取離散數(shù)據(jù)就不能使用切片的方法,再者就是我們不能一個一個來進行提取,Numpy有一種很方便的方法可以獲得離散數(shù)據(jù)。即下面

x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]]) 
rows = np.array( [ [0,0],[3,3] ] ) #表示第1、4行
cols = np.array( [ [0,2],[0,2] ] ) #表示第1、3列
y = x[rows,cols]
y # out : array([[ 0,  2], [ 9, 11]])

2.2.4 布爾索引

??顧名思義,通過布爾運算(如:比較運算符)來獲取符合指定條件的元素的數(shù)組。

x = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]]) 
print(x[x > 5]) # out : [ 6  7  8  9 10 11]
b = x > 5
b # 打印布爾運算的結(jié)果

npyio,Python,python,矩陣,開發(fā)語言,人工智能,機器學習

2.2.5 元素查找定位

??Numpy庫中提供了where函數(shù)來查找滿足條件元素的索引,表示如下:

  • np.where(condition, x, y): 滿足條件(condition),輸出x,不滿足輸出y
  • np.where(condition): 輸出滿足條件 (即非0) 元素的坐標
a = np.array([2,4,6,8,10,3]).reshape(2,3) 
c = np.where(a > 5) # 返回索引 out : (array([0, 1, 1], dtype=int64), array([2, 0, 1], dtype=int64))
a[c] # 獲得元素

2.2.6 元素刪除

np.delete(arr, obj, axis=None)

  • 第一個參數(shù):要處理的矩陣,
  • 第二個參數(shù),處理的位置,下標
  • 第三個參數(shù),0表示按照行刪除,1表示按照列刪除,默認為0
  • 返回值為刪除后的剩余元素構(gòu)成的矩陣
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
np.delete(arr, [1], 0) # 表示刪除第二行

2.3 Numpy數(shù)組的拼接和分割

2.3.1 拼接

下面的圖列舉了常見的用于數(shù)組或向量 合并的方法。
npyio,Python,python,矩陣,開發(fā)語言,人工智能,機器學習
說明:

  • append、concatenate以及stack都有一個axis參數(shù),用于控制數(shù)組的合 并方式是按行還是按列。
  • 對于append和concatenate,待合并的數(shù)組必須有相同的行數(shù)或列數(shù)
  • stack、hstack、dstack,要求待合并的數(shù)組必須具有相同的形狀
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
np.hstack((a,b)) #等效于 np.concatenate((a,b),axis = 1)
# out : array([[1, 2, 5, 6], [3, 4, 7, 8]])

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
np.vstack((a,b)) #等價于 np.concatenate((a,b),axis = 0)
# out : array([[1, 2], [3, 4], [5, 6], [7, 8]])

2.3.2 分割

  • 水平分割:np.split(arr,n,axis=1) 或 np.hsplit(arr,n):按列分成n份。返回一個list
  • 垂直分割:np.split(arr,n,axis=0) 或 np.vsplit(arr,n):按行分成n份,返回一個list
x = np.arange(12).reshape(3, 4)
np.split(x, 3) # out : [array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]

y = np.arange(9).reshape(1, 9)
np.split(y, 3, axis = 1) # out : [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]

2.4 維度變換

??在機器學習以及深度學習的任務中,通常需要將處理好的數(shù)據(jù)以模型能 接收的格式輸入給模型,然后由模型通過一系列的運算,最終返回一個處理 結(jié)果。然而,由于不同模型所接收的輸入格式不一樣,往往需要先對其進行 一系列的變形和運算,從而將數(shù)據(jù)處理成符合模型要求的格式。在矩陣或者 數(shù)組的運算中,經(jīng)常會遇到需要把多個向量或矩陣按某軸方向合并,或展平 (如在卷積或循環(huán)神經(jīng)網(wǎng)絡中,在全連接層之前,需要把矩陣展平)的情 況。下面介紹幾種常用的數(shù)據(jù)變形方法。
npyio,Python,python,矩陣,開發(fā)語言,人工智能,機器學習
1) reshape
??不改變原數(shù)組元素,返回一個新的shape維度的數(shù)組(維度變換)

x = np.arange(12).reshape(3, 4)
x # out : array([[ 0,  1,  2,  3], [ 4,  5,  6,  7], [ 8,  9, 10, 11]])

# 指定維度時可以只指定行數(shù)或列數(shù), 其他用 -1 代替
x.reshape(3, -1) # out : array([[ 0,  1,  2,  3], [ 4,  5,  6,  7], [ 8,  9, 10, 11]])

2) resize
??改變向量的維度(修改向量本身):

arr =np.arange(10) 
print(arr) # out : [0 1 2 3 4 5 6 7 8 9]

arr.resize(2, 5) # 將向量 arr 維度變換為2行5列 
print(arr) # out : [[0 1 2 3 4], [5 6 7 8 9]]

3) T
??轉(zhuǎn)置

arr = np.arange(8).reshape(2, 4)
arr.shape # out : (2, 4)
arr.T.shape # out : (4, 2)

4) ravel
??向量展平

arr = np.arange(8).reshape(2, 4)
arr.ravel() # out : array([0, 1, 2, 3, 4, 5, 6, 7])

5) flatten
??把矩陣轉(zhuǎn)換為向量,這種需求經(jīng)常出現(xiàn)在卷積網(wǎng)絡與全連接層之間。

arr = np.arange(8).reshape(2, 4)
arr.flatten() # out : array([0, 1, 2, 3, 4, 5, 6, 7])

6) squeeze
??這是一個主要用來降維的函數(shù),把矩陣中含1的維度去掉

arr = np.arange(8).reshape(2, 4, 1)
arr.shape # out : (2, 4, 1)
arr.squeeze().shape # out : (2, 4)

7) transpose
??對高維矩陣進行軸對換,這個在深度學習中經(jīng)常使用,比如把圖片中表 示顏色順序的RGB改為GBR。

arr = np.arange(12).reshape(2, 6, 1)
arr.shape # out : (2, 6, 1)
arr.transpose(1, 2, 0).shape # out : (6, 1, 2)

拓展
8) swapaxes
??將兩個維度調(diào)換, 就是把對應的下標換個位置,類似于transpose

arr = np.arange(20).reshape(4, 5)
arr.swapaxes(1, 0)

2.5 Numpy數(shù)值計算

2.5.1 通用函數(shù)對象(ufunc)

??ufunc是universal function的簡稱,種能對數(shù)組每個元素進行運算的函數(shù)。NumPy的許多ufunc函數(shù)都是用C語言實現(xiàn)的,因此它們的運算速度非???。下圖是在數(shù)據(jù)批量處過程中較為常用的幾個函數(shù)
npyio,Python,python,矩陣,開發(fā)語言,人工智能,機器學習
使用的格式基本如下:np.函數(shù)名(數(shù)組, 指定計算的維度(默認為0)),如:

a = np.array([[6, 3, 7, 4, 6], [9, 2, 6, 7, 4], [3, 7, 7, 2, 5], [4, 1, 7, 5, 1]])
np.sum(a, axis = 0) # out : array([22, 13, 27, 18, 16])
np.sum(a, axis = 1)# out : array([26, 28, 24, 18]

其余函數(shù)使用過程均可參考上述求和過程。下面繼續(xù)介紹一下數(shù)組的排序問題。主要使用函數(shù)有np.min,np.max,np.median。

arr = np.array([[10, 11, 12], [13, 14, 15]])
np.min(arr, axis = 0) # out : array([10, 11, 12]) 按行求最小值,即列不變,行變
np.min(arr, axis = 1) # out : array([10, 13]) 按列求最小值,即行不變,列變

我們可以通過np.argmin,np.argmax獲得相對應的最小值、最大值的下標

arr = np.array([[10, 14, 12], [13, 11, 15]])
np.argmin(arr, axis = 0) # out : array([0, 1, 0], dtype=int64) 按行求最小值,即列不變,行變
np.argmin(arr, axis = 1) # out : array([0, 1], dtype=int64) 按列求最小值,即行不變,列變

使用np.sort和np.argsor進行排序并排序后的下標

arr = np.array([1, 3, 5, 2, 4])
np.sort(arr) # out : array([1, 2, 3, 4, 5])
np.argsort(arr) # out : array([0, 3, 1, 4, 2], dtype=int64)

2.5.2 矩陣運算

1) 對應元素相乘
??對應元素相乘(Element-Wise Product)是兩個矩陣中對應元素乘積。 np.multiply函數(shù)用于數(shù)組或矩陣對應元素相乘,輸出與相乘數(shù)組或矩陣的大 小一致。

a = np.array([[1,0],[0,1]])
b = np.array([[4,1],[2,2]])
np.multiply(a, b) # 等效于a * b,out : array([[4, 0], [0, 2]])

計算過程如下圖:
npyio,Python,python,矩陣,開發(fā)語言,人工智能,機器學習
2) 點積
??點積運算(Dot Product)又稱為內(nèi)積,在Numpy用np.dot或者np.matmul表示

a = np.array([[1,0],[0,1]])
b = np.array([[4,1],[2,2]])
np.dot(a, b) # 等效于np.matmul(a, b) out : array([[4, 1], [2, 2]])

計算過程如下圖:
npyio,Python,python,矩陣,開發(fā)語言,人工智能,機器學習
3) 行列式
??計算行列式的值

arr = np.array([[1,2], [3,4]]) 
np.linalg.det(arr) # out : -2.0000000000000004

4) 求逆

arr = np.array([[1,2], [3,4]]) 
np.linalg.inv(arr) # out : array([[-2. ,  1. ], [ 1.5, -0.5]])

5) 特征值和特征向量

A = np.random.randint(-10,10,(4,4))
C = np.dot(A.T, A)
vals, vecs = np.linalg.eig(C) 
print(f'特征值 : {vals}, 特征向量 : {vecs}')
out : 
特征值 : [395.26566729 358.52489695  44.41465068  52.79478508]
特征向量 : [[ 0.30221599  0.64309202 -0.64757004 -0.27522935]
             [ 0.87819925 -0.03518532  0.18871425  0.43808105]
             [-0.35779498  0.26192443 -0.27010759  0.85464626]
             [ 0.09702746 -0.71874212 -0.68708214  0.04374437]]

2.6 插值運算

??這個過程其實就是我們在數(shù)學中已知一個函數(shù),然后給出x值,讓你根據(jù)這個函數(shù)求對應的y值,一般在曲線平滑處理中有較多的使用在Numpy中由numpy.interp(x, xp, fp, left=None, right=None, period=None)表示

  • x - 表示將要計算的插值點x坐標
  • xp - 表示已有的xp數(shù)組
  • fp - 表示對應于已有的xp數(shù)組的值
import matplotlib.pyplot as plt 
import numpy as np

x = np.linspace(0, 2 * np.pi, 10)
y = np.sin(x)

xvals = np.linspace(0, 2 * np.pi, 10000)
yinterp = np.interp(xvals, x, y)

plt.plot(x, y, 'r-', xvals, yinterp, 'b-')
plt.show()

npyio,Python,python,矩陣,開發(fā)語言,人工智能,機器學習

2.7 曲線擬合

??我們在數(shù)學建模過程中得到我們的數(shù)據(jù)之后,如果我們想要使用某個函數(shù)去描述數(shù)據(jù)的規(guī)律,這個過程其實就在曲線擬合的過程,這里只介紹最簡單的一種擬合方式。Numpy中由numpy.polyfit(x, y, deg)表示

  • x為待擬合的x坐標
  • y為待擬合的y坐標
  • deg為擬合自由度,即多項式的最高次冪
import matplotlib.pyplot as plt 
import numpy as np

x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0])
y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0])
#得到多項式的系數(shù)
z = np.polyfit(x, y, 3)
z2 = np.polyfit(x, y, 5)
#得到多項式函數(shù)
f = np.poly1d(z)
f2 = np.poly1d(z2)
#用兩個函數(shù)進行擬合
xval = np.linspace(0, 10, 50)
yval1 = f(xval)
yval2 = f2(xval)
#作圖
plt.plot(xval, yval1, 'r--o', xval, yval2, 'b-o')
plt.legend(['The deg is 3', 'The deg is 5'])
plt.show()

print(f) # out :  0.08704 x^3 - 0.8135 x^2 + 1.693 x - 0.03968
print(f2) # out : -0.008333 x^5 + 0.125 x^4 - 0.575 x^3 + 0.625 x^2 + 0.6333 x - 1.74e-14

npyio,Python,python,矩陣,開發(fā)語言,人工智能,機器學習
由圖能夠看出,3和5自由度的函數(shù)在前面的函數(shù)曲線基本是重合的,但是約在7左右開始朝著相反方向進行變化,因此擬合函數(shù)的自由度對效果的影響是非常大的,找到一個合適的自由度至關(guān)重要。

3 Numpy IO操作

1) 保存數(shù)組
??保存一個數(shù)組到一個二進制的文件中,保存格式是.npy,Numpy中由np.save(file, array)表示。
2) 讀取文件
??arr = numpy.load(file): 讀取npy 文件到內(nèi)存

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
#保存數(shù)據(jù)
np.save('test.npy', arr)
#下載數(shù)據(jù)
np.load('test.npy') # out : array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

拓展
??保存到文本文件

  • np.savetxt(fname, X, fmt=‘%.18e’, delimiter=‘ ‘)
  • arr = numpy.loadtxt(fname, delimiter=None)

參考
《Python深度學習基于PyTorch》 吳茂貴文章來源地址http://www.zghlxwxcb.cn/news/detail-732347.html

到了這里,關(guān)于Python Numpy庫教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • Python numpy - 數(shù)組與矩陣的運算

    Python numpy - 數(shù)組與矩陣的運算

    目錄 ?數(shù)組array 一 數(shù)組的函數(shù) unique函數(shù) ?sum函數(shù) ?max函數(shù) 二 數(shù)組的加減 三 數(shù)組的乘除 ?矩陣matrix 一 矩陣的生成 二 矩陣的加減 三? 矩陣的乘法 創(chuàng)建數(shù)組a和b用來運算(至少兩個) 數(shù)組常用函數(shù) 函數(shù) 作用 unique() 求數(shù)組里的唯一值,輸出從小到大排列 sum() 對數(shù)組整

    2024年02月11日
    瀏覽(25)
  • Python學習(2)-NumPy矩陣與通用函數(shù)

    文章首發(fā)于:My Blog 歡迎大佬們前來逛逛 data:表示輸入的 數(shù)組 或者 字符串 ,使用‘,’分割列,使用‘;’分割行 創(chuàng)建兩個普通的矩陣: 需要注意:mat創(chuàng)建的矩陣是不會產(chǎn)生副本的,即 共享內(nèi)存 : matrix也是創(chuàng)建矩陣的: data:數(shù)組或者字符串,與mat一樣 copy:表示創(chuàng)建

    2024年03月25日
    瀏覽(23)
  • python中numpy矩陣的零填充

    python中numpy矩陣的零填充

    目錄 需求: ?方法: 一、再new一個更大的所需要的矩陣大小? ?二、pad函數(shù) ?其他想法 對于圖像處理中的一些過程,我需要對讀取的numpy矩陣進行size的擴充,比如原本是(4,6)的矩陣,現(xiàn)在需要上下左右各擴充3行,且為了不影響數(shù)值計算,都用0填充。 比如下圖,我有一個

    2024年02月11日
    瀏覽(20)
  • Python 使用numpy.bincount計算混淆矩陣

    Confusion matrix using numpy.bincount. np.bincount 用于統(tǒng)計一個非負數(shù)組中元素的出現(xiàn)次數(shù)。函數(shù)格式如下: 通常默認數(shù)組 x x

    2024年02月07日
    瀏覽(25)
  • Python庫第一課:基礎Numpy知識(下):矩陣

    Python庫第一課:基礎Numpy知識(下):矩陣

    ? ? ? ? 好的,我們今天繼續(xù)來學習Numpy的基礎,昨天,已經(jīng)介紹完Numpy的成員之一——數(shù)組,今天,在接著介紹其另一大成員——矩陣,也是應用非常廣泛的成員。 ? ? ? ? 矩陣,在線性代數(shù)中是幾乎貫穿全文的成員,因此,這里需要較高的線性代數(shù)的基礎。在這里,默認

    2024年02月03日
    瀏覽(31)
  • Python中范數(shù)計算以及numpy矩陣的運算

    Python中范數(shù)計算以及numpy矩陣的運算

    1.1 定義: ? 范數(shù)(norm)是數(shù)學中的一種基本概念。在泛函分析中,它定義在賦范線性空間中,并滿足一定的條件,即①非負性;②齊次性;③三角不等式。它常常被用來度量某個向量空間(或矩陣)中的每個向量的長度或大小。 ? 最常見的范數(shù)就是p范數(shù)。若 x = [ x 1 , x 2 .

    2023年04月09日
    瀏覽(24)
  • Python,Numpy 輕松實現(xiàn)矩陣每一列升序排列

    my_array.sort()改變有序數(shù)組并返回已排序數(shù)組。 np.sort(my_array)返回已排序數(shù)組的副本,因此原始數(shù)組不會改變。 以下是可選參數(shù)。 axis:int,可選—要排序的軸。默認值為-1,表示沿最后一個軸排序。 kind:{\\\'quicksort\\\',\\\'mergesort\\\',\\\'heapsort\\\',\\\'stable\\\'},可選—排序算法。默認為\\\'quic

    2024年02月11日
    瀏覽(17)
  • Python讀取一個csv文件并轉(zhuǎn)換為Numpy矩陣

    Python讀取一個csv文件并轉(zhuǎn)換為Numpy矩陣

    利用pandas庫讀取,轉(zhuǎn)為numpy矩陣 注意讀取csv文件時第一行數(shù)據(jù)默認不讀,因此需要給csv加一行。 ? 運行結(jié)果 ?

    2024年02月12日
    瀏覽(17)
  • 【Python】機器學習:基礎前置 | 矩陣的表示與定義 | Numpy 庫 | Identity 身份矩陣 | 逆矩陣和轉(zhuǎn)置

    【Python】機器學習:基礎前置 | 矩陣的表示與定義 | Numpy 庫 | Identity 身份矩陣 | 逆矩陣和轉(zhuǎn)置

    ? ? ?? 寫在前面: 我們先介紹線性方程體系的基本概念和矩陣表示方法,矩陣的定義、加法、乘法、逆矩陣、轉(zhuǎn)置和標量乘法等。然后講解如何解決線性方程組問題,包括解集形式、行階梯形矩陣、計算逆置和解決線性方程組的算法等。本節(jié)將補充線性代數(shù)的基礎知識,為

    2024年02月02日
    瀏覽(25)
  • 【Python】機器學習基礎前置:矩陣的表示與定義 | Numpy 庫 | Identity 身份矩陣 | 逆矩陣和轉(zhuǎn)置

    【Python】機器學習基礎前置:矩陣的表示與定義 | Numpy 庫 | Identity 身份矩陣 | 逆矩陣和轉(zhuǎn)置

    ? ? ?? 寫在前面: 我們先介紹線性方程體系的基本概念和矩陣表示方法,矩陣的定義、加法、乘法、逆矩陣、轉(zhuǎn)置和標量乘法等。然后講解如何解決線性方程組問題,包括解集形式、行階梯形矩陣、計算逆置和解決線性方程組的算法等。本節(jié)將補充線性代數(shù)的基礎知識,為

    2024年02月02日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包