主要為將來的張量(tensor)計算打基礎
numpy 包包含numpy.linalg模組,提供線性代數所需的所有功能,主要功能有下
dot 兩個陣列的點積
vdot 兩個向量的點積
inner 兩個陣列的內積
matmul 兩個陣列的矩陣積
1 點積 numpy.dot()
對於一維陣列(向量),相當於內積;對於二維陣列(矩陣),相當於矩陣乘法;對於多維陣列(張量),它是a的最後乙個軸上的和與b的倒數第二個軸的乘積。
import numpy as np
a = np.array([[[1,2],[3,4]],[[5,6],[7,8]]])
b = np.array([[[2,4],[3,6]],[[4,8],[5,10]]])
c = np.dot(a,b)
print(a)
print(b)
print()
print(c)
# 輸出
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
[[[ 2 4]
[ 3 6]]
[[ 4 8]
[ 5 10]]]
[[[[ 8 16]
[ 14 28]]
[[ 18 36]
[ 32 64]]]
[[[ 28 56]
[ 50 100]]
[[ 38 76]
[ 68 136]]]]
對於二階以下的都很好理解,這裡畫圖舉例乙個(2,2,2)與(2,2,2)的np.dot的結果:
2 向量點積 vdot()
import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[11,12],[13,14]])
print np.vdot(a,b)
#輸出130
ez
3 內積 numpy.inner()
對於一維陣列,返回向量內積
對於高維陣列,先將高維陣列分成多個一維陣列,再依次做向量內積:
import numpy as np
a = np.array([[1,2], [3,4]])
b = np.array([[11, 12], [13, 14]])
c = np.inner(a,b)
print (a)
print(b)
print(c)
#輸出[[1 2]
[3 4]]
[[11 12]
[13 14]]
[[35 41]
[81 95]]
#計算過程如下
1*11+2*12, 1*13+2*14
3*11+4*12, 3*13+4*14
4 矩陣乘積 numpy.matmul()
numpy.matmul()函式返回兩個陣列的矩陣乘積。 雖然它返回二維陣列的正常乘積,但如果任一引數的維數大於2,則將其視為存在於最後兩個索引的矩陣的棧,並進行相應廣播。
另一方面,如果任一引數是一維陣列,則通過在其維度上附加 1 來將其提公升為矩陣,並在乘法之後被去除。
發現與inner()結果是一樣的…
#乙個是一維的陣列
import numpy as np
a = np.array([[1,2], [3,4]])
b = np.array([11, 12])
c = np.inner(a,b)
print(a)
print(b)
print()
print(c)
#輸出[[1 2]
[3 4]]
[1112]
[3581]
#乙個是多維陣列
import numpy as np
a = np.arange(8).reshape(2,2,2)
b = np.arange(4).reshape(2,2)
c = np.matmul(a,b)
print(a)
print()
print(b)
print()
print(c)
#輸出[[[0 1]
[2 3]]
[[4 5]
[6 7]]]
[[0 1]
[2 3]]
[[[ 2 3]
[ 6 11]]
[[10 19]
[14 27]]]
#計算過程是將a分成兩個矩陣,依次與第二個矩陣相乘:
[[[0 1] * [[0 1]
[2 3]] [2 3]],
[[4 5] * [[0 1]
[6 7]] [2 3]]]
參考: numpy之隨機數模組 random模組
一 二項分布 隨機數 模組為random模組 生成服從特定統計規律的隨機數序列 1.二項分布 binomial 就是重複n次的伯努利實驗,每次實驗只有兩種可能的結果,而且兩種結果發生與否相互獨立。事件發生與否的概率在每次實驗中都是保持不變的 numpy中實現 np.random.binomial n...
Python中Numpy庫的線性代數
cible 學習筆記 numpy 定義了 matrix 型別,使用該 matrix 型別建立的是矩陣物件,它們的加減乘除運算預設採 用矩陣方式計算,因此用法和matlab十分類似。但是由於 numpy 中同時存在 ndarray 和 matrix 物件,因此使用者很容易將兩者弄混。這有違 pytho...
Numpy模組的使用
pip install numpy i numpy numerical python 是 python語言的乙個擴充套件程式庫,支援任意維度的陣列和矩陣操作,此外也針對陣列運算提供了大量的內建方法。numpy 是乙個執行速度非常快的數學庫,主要用於陣列計算,包含 乙個強大的n維陣列物件 ndarra...