預設情況下,所有numpy函式都可以在scipy(命名空間)中使用。當匯入scipy時,不需要顯式地匯入numpy函式。numpy的主要物件是n次多維陣列ndarray,scipy構建在ndarray陣列之上,ndarray是儲存單一資料型別的多維陣列。在numpy中,維度稱為軸,座標軸的數量稱為秩。
通常線性代數主要處理矩陣運算,現在,讓我們複習一下numpy中向量/陣列和矩陣的基本功能。
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]
>
numpy中,可以使用下面介紹的內建函式建立ndarrray陣列。
zeros()
函式建立陣列,並且把陣列元素的值初始化為0,可以指定陣列形狀和資料型別。
示例
import numpy as np
print
(np.zeros((2
,3))
)
輸出
[
[0. 0. 0.]
[0. 0. 0.]
]
ones()
函式建立陣列,並且把陣列元素的值初始化為1,可以指定陣列形狀和資料型別。
示例
import numpy as np
print
(np.ones((2
,3))
)
輸出
[
[1. 1. 1.]
[1. 1. 1.]
]
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()
函式建立乙個陣列,該陣列包含指定區間內均勻分布的值。
示例
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]
]
SciPy 基礎功能
預設情況下,所有numpy函式都可以在scipy 命名空間 中使用。當匯入scipy時,不需要顯式地匯入numpy函式。numpy的主要物件是n次多維陣列ndarray,scipy構建在ndarray陣列之上,ndarray是儲存單一資料型別的多維陣列。在numpy中,維度稱為軸,座標軸的數量稱為秩...
Scipy 基礎 稀疏矩陣
稀疏矩陣,也即僅儲存非零元素,既提公升了矩陣操作的效率,也節省了記憶體。很多語言 平台都支援稀疏矩陣這一資料儲存結構,儘管語言 平台各異,但是多數採用相同的基本技術,即儲存矩陣所有的非零元素到乙個線性陣列中,並提供輔助陣列來描述原陣列中非零元素的位置。以下是幾種常見的稀疏矩陣儲存格式 不同的儲存形式...
scipy安裝 安裝Scipy失敗 解決途徑
這個問題困擾我一天,後來發現好簡單,忍不住記錄分享。症狀描述 在cmd 中輸入 pip install numpty pip install numpty 安裝numpy庫成功,但輸入 pip install scipy 安裝失敗,我嘗試很多方法都失敗。中間歷經曲折直接上答案。成功經驗 在shell...