SciPy 基礎功能


章節


默認情況下,所有NumPy函數都可以在SciPy(命名空間)中使用。當導入SciPy時,不需要顯式地導入NumPy函數。NumPy的主要對象是n次多維數組ndarray,SciPy構建在ndarray數組之上,ndarray是存儲單一數據類型的多維數組。在NumPy中,維度稱為軸,坐標軸的數量稱為秩。

通常線性代數主要處理矩陣運算,現在,讓我們復習一下NumPy中向量/數組和矩陣的基本功能。

NumPy ndarray數組

ndarray是NumPy中最重要的類。

標准的Python列表(list)中,元素是對象。如:L = [1, 2, 3],需要3個指針和三個整數對象,對於數值運算比較浪費資源。

與此不同,ndarray中元素直接存儲為原始數據,元素的類型由ndarray對象中的屬性dtype描述。

當ndarray數組中的元素,通過索引或切片返回時,會根據dtype,從原始數據轉換成Python對象,以便外部使用。

示例

將Python類數組對象轉換為NumPy數組

import numpy as np
list = [1,2,3,4]
arr = np.array(list)
print (arr)
print (type(arr))

輸出

[1 2 3 4]
<class 'numpy.ndarray'>

創建NumPy數組

NumPy中,可以使用下面介紹的內置函數創建ndarrray數組。

zeros()

zeros()函數創建數組,並且把數組元素的值初始化為0,可以指定數組形狀和數據類型。

示例

import numpy as np
print (np.zeros((2, 3)))

輸出

[[0. 0. 0.]
 [0. 0. 0.]]

ones()

ones()函數創建數組,並且把數組元素的值初始化為1,可以指定數組形狀和數據類型。
示例

import numpy as np
print (np.ones((2, 3)))

輸出

[[1. 1. 1.]
 [1. 1. 1.]]

arange()

arange()函數創建遞增數組。

示例

import numpy as np
print (np.arange(7))

輸出

[0 1 2 3 4 5 6]

數組的數據類型

數據類型對象dtype,是描述數組中元素數據類型的對象。

示例

import numpy as np
arr = np.arange(2, 10, dtype = np.float)
print (arr)
print ("數組數據類型 :", arr.dtype)

輸出

[ 2. 3. 4. 5. 6. 7. 8. 9.]
數組數據類型 : float64

linspace()

linspace()函數創建一個數組,該數組包含指定區間內均勻分布的值。

示例

import numpy as np
print (np.linspace(1., 4., 6))

輸出

[1.  1.6 2.2 2.8 3.4 4. ]

矩陣

矩陣是一種特殊的二維數組,它有一些特殊的運算符,如*(矩陣乘法)和**(矩陣冪)。

示例

import numpy as np
print (np.matrix('1 2; 3 4'))

輸出

[[1 2]
 [3 4]]

矩陣轉置

將矩陣的行列互換得到的新矩陣,稱為轉置矩陣。

示例

import numpy as np
mat = np.matrix('1 2; 3 4')
mat.T

輸出

matrix([[1, 3],
        [2, 4]])

矩陣的共軛轉置

共軛就是矩陣每個元素都取共軛(復數的實部不變,虛部取負)。

共軛轉置就是先取共軛,再取轉置。

示例

import numpy as np
mat = np.matrix('1 2; 3 4')
print (mat.H)

輸出

matrix([[1, 3],
        [2, 4]])

單位矩陣

單位矩陣在矩陣的乘法中,起着特殊的作用,如同數的乘法中的1。單位矩陣是個方陣,從左上角到右下角的對角線(稱為主對角線)上的元素均為1,除此以外全都為0。

示例

創建單位矩陣:

import numpy.matlib 
import numpy as np 
print (np.matlib.identity(5))

輸出

[[1. 0. 0. 0. 0.]
 [0. 1. 0. 0. 0.]
 [0. 0. 1. 0. 0.]
 [0. 0. 0. 1. 0.]
 [0. 0. 0. 0. 1.]]

逆矩陣

逆矩陣的數學定義:存在矩陣M以及矩陣N,假如M*N = 矩陣I(Identify Matrix單位矩陣),那么矩陣M和矩陣N互為逆矩陣。

示例

求一個矩陣的逆矩陣:

import numpy as np
mat = np.matrix('1 2; 3 4')
mat2 = mat.I
print(mat2)

輸出

[[-2.   1. ]
 [ 1.5 -0.5]]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM