1.基本運(yùn)算
1.1 四則運(yùn)算
NumPy
數(shù)組支持基本的四則運(yùn)算(加法荷荤、減法起胰、乘法和除法),它們是元素級別的運(yùn)算荡陷,也稱為逐元素運(yùn)算;
-
numpy.add()
: 加法運(yùn)算,或使用:+
; -
numpy.subtract()
: 減法運(yùn)算狸膏,或使用:-
; -
numpy.multiply()
: 乘法運(yùn)算沟饥,或使用:*
; -
numpy.divide()
: 除法運(yùn)算,或使用:/
;
import numpy as np
if __name__ == '__main__':
arr1 = np.array([1, 2, 3, 4])
arr2 = np.array([10, 20, 30, 40])
# 加法運(yùn)算
print("加法運(yùn)算(add):", np.add(arr1, arr2))
print("加法運(yùn)算(+):", arr1 + arr2)
# 減法運(yùn)算
print("減法運(yùn)算(subtract):", np.subtract(arr1, arr2))
print("減法運(yùn)算(-):", arr1 - arr2)
# 乘法運(yùn)算
print("乘法運(yùn)算(multiply):", np.multiply(arr1, arr2))
print("乘法運(yùn)算(*):", arr1 * arr2)
# 除法運(yùn)算
print("除法運(yùn)算(divide):", np.divide(arr1, arr2))
print("除法運(yùn)算(/):", arr1 / arr2)
"""
加法運(yùn)算(add): [11 22 33 44]
加法運(yùn)算(+): [11 22 33 44]
減法運(yùn)算(subtract): [ -9 -18 -27 -36]
減法運(yùn)算(-): [ -9 -18 -27 -36]
乘法運(yùn)算(multiply): [ 10 40 90 160]
乘法運(yùn)算(*): [ 10 40 90 160]
除法運(yùn)算(divide): [0.1 0.1 0.1 0.1]
除法運(yùn)算(/): [0.1 0.1 0.1 0.1]
"""
1.2 平方根
import numpy as np
if __name__ == '__main__':
arr = np.array([1, 4, 9, 16])
print("一維數(shù)組平方根運(yùn)算:", np.sqrt(arr))
two_arr = np.array([
[1, 2, 3, 4],
[5, 6, 7, 8]
])
print("二維數(shù)組平方根運(yùn)算:\n", np.sqrt(two_arr))
"""
一維數(shù)組平方根運(yùn)算: [1. 2. 3. 4.]
二維數(shù)組平方根運(yùn)算:
[[1. 1.41421356 1.73205081 2. ]
[2.23606798 2.44948974 2.64575131 2.82842712]]
"""
1.3 冪運(yùn)算
import numpy as np
if __name__ == '__main__':
arr = np.array([1, 2, 3, 4])
print("一維數(shù)組冪運(yùn)算:\n", np.power(arr, 2))
two_arr = np.array([
[1, 2, 3, 4],
[5, 6, 7, 8]
])
print("二維數(shù)組冪運(yùn)算:\n", np.power(two_arr, 2))
"""
一維數(shù)組冪運(yùn)算:
[ 1 4 9 16]
二維數(shù)組冪運(yùn)算:
[[ 1 4 9 16]
[25 36 49 64]]
"""
2.統(tǒng)計運(yùn)算
2.1 求和
np.sum():
用于計算數(shù)組元素總和的函數(shù)。它可以接受多個參數(shù)贤旷,但最常用的是對單個數(shù)組進(jìn)行求和广料。
import numpy as np
if __name__ == '__main__':
# 一維數(shù)求和運(yùn)算
arr = np.array([1, 2, 3, 4])
print("一維數(shù)組求和運(yùn)算:", np.sum(arr))
# 二維數(shù)組求和運(yùn)算
two_arr = np.array([
[1, 2, 3, 4],
[5, 6, 7, 8]
])
print("二維數(shù)組求和運(yùn)算:", np.sum(two_arr))
# 三維數(shù)組求和運(yùn)算
three_arr = np.arange(6).reshape((1, 3, 2))
print("三維數(shù)組:\n", three_arr)
print("三維數(shù)組求和運(yùn)算:", np.sum(three_arr))
"""
一維數(shù)組求和運(yùn)算: 10
二維數(shù)組求和運(yùn)算: 36
三維數(shù)組:
[[[0 1]
[2 3]
[4 5]]]
三維數(shù)組求和運(yùn)算: 15
"""
2.2 平均值
np.mean():
用于計算數(shù)組元素平均值的函數(shù)。它可以接受多個參數(shù)幼驶,但最常用的是對單個數(shù)組進(jìn)行平均值計算艾杏。
mean(a, axis=None, dtype=None, out=None, keepdims=np._NoValue, *,where=np._NoValue)
a. 參數(shù)說明:
-
axis:
可以指定在哪個軸上進(jìn)行平均值計算。默認(rèn)情況下盅藻,它會對整個數(shù)組進(jìn)行計算购桑,返回一個標(biāo)量值。 -
dtype:
可以指定結(jié)果的數(shù)據(jù)類型氏淑。默認(rèn)情況下勃蜘,結(jié)果的數(shù)據(jù)類型與輸入數(shù)組的數(shù)據(jù)類型相同。 -
keepdims:
默認(rèn)情況下,返回一個降維后的數(shù)組(標(biāo)量)夸政,但如果設(shè)置keepdims=True
元旬,則結(jié)果將保持與輸入數(shù)組相同的維度 -
where:
它接受一個布爾數(shù)組或條件表達(dá)式榴徐,當(dāng)參數(shù)不為空時,將只計算滿足條件的元素的平均值守问,而忽略不滿足條件的元素。
b.代碼示例:
import numpy as np
if __name__ == '__main__':
# 一維數(shù)組
one_arr = np.array([10, 20, 30, 40])
# 二維數(shù)組
two_arr = np.array([
[1, 2, 3, 4],
[5, 6, 7, 8]
])
print("---------------- 不指定參數(shù)時 ----------------")
print("一維數(shù)組,求平均值:", np.mean(one_arr))
print("二維數(shù)組,求平均值:", np.mean(two_arr))
print("---------------- 使用axis參數(shù) ----------------")
print("二維數(shù)組,對列求平均值:", np.mean(two_arr, axis=0))
print("二維數(shù)組,對行求平均值:", np.mean(two_arr, axis=1))
print("---------------- 使用dtype參數(shù) ----------------")
mean_dtype = np.mean(two_arr, dtype=np.float32)
mean_no_dtype = np.mean(two_arr)
print("二維數(shù)組,求平均值:{},類型:{} 不指定dtype時類型:{}".format(mean_dtype, type(mean_dtype), type(mean_no_dtype)))
print("---------------- 使用keepdims ----------------")
print("二維數(shù)組,求平均值;指定:keepdims:", np.mean(two_arr, keepdims=True))
print("---------------- 使用where ----------------")
print("一維數(shù)組,求平均值;指定:where > 20:", np.mean(one_arr, where=one_arr > 20))
print("二維數(shù)組,求平均值;指定:where > 6:", np.mean(two_arr, where=two_arr > 6))
"""
---------------- 不指定參數(shù)時 ----------------
一維數(shù)組,求平均值: 25.0
二維數(shù)組,求平均值: 4.5
---------------- 使用axis參數(shù) ----------------
二維數(shù)組,對列求平均值: [3. 4. 5. 6.]
二維數(shù)組,對行求平均值: [2.5 6.5]
---------------- 使用dtype參數(shù) ----------------
二維數(shù)組,求平均值:4.5,類型:<class 'numpy.float32'> 不指定dtype時類型:<class 'numpy.float64'>
---------------- 使用keepdims ----------------
二維數(shù)組,求平均值;指定:keepdims: [[4.5]]
---------------- 使用where ----------------
一維數(shù)組,求平均值;指定:where > 20: 35.0
二維數(shù)組,求平均值;指定:where > 6: 7.5
"""
2.3 中位數(shù)
np.median()
是用于計算數(shù)組的中位數(shù)的函數(shù)坑资。
numpy.median(a, axis=None, out=None, overwrite_input=False, keepdims=False)
a.參數(shù)說明:
-
axis
:指定計算中位數(shù)時要沿著哪個軸操作耗帕。默認(rèn)值為None
,表示在整個數(shù)組上計算中位數(shù)袱贮。 -
out
:可選參數(shù)仿便,用于指定存儲結(jié)果的輸出數(shù)組。如果未提供攒巍,則創(chuàng)建一個新的數(shù)組來存儲結(jié)果嗽仪。 -
overwrite_input
:可選參數(shù),如果設(shè)置為True
柒莉,則允許直接修改輸入數(shù)組以節(jié)省內(nèi)存闻坚。默認(rèn)值為False
。 -
keepdims
:可選參數(shù)兢孝,如果設(shè)置為True
窿凤,則結(jié)果將保持與輸入數(shù)組相同的維度。默認(rèn)值為False
跨蟹。
b. 代碼示例:
import numpy as np
if __name__ == '__main__':
# 一維數(shù)組
one_arr = np.array([10, 20, 30, 40])
print("一維數(shù)組中位數(shù):", np.median(one_arr))
# 二維數(shù)組
two_arr = np.array([
[1, 2, 3, 4],
[5, 6, 7, 8]
])
print("二維數(shù)組中位數(shù):", np.median(two_arr))
print("二維數(shù)組,沿行計算中位數(shù):", np.median(two_arr, axis=1))
print("二維數(shù)組雳殊,沿列計算中位數(shù):", np.median(two_arr, axis=0))
"""
一維數(shù)組中位數(shù): 25.0
二維數(shù)組中位數(shù): 4.5
二維數(shù)組,沿行計算中位數(shù): [2.5 6.5]
二維數(shù)組,沿列計算中位數(shù): [3. 4. 5. 6.]
"""
2.4 方差
方差是統(tǒng)計學(xué)中用來衡量一組數(shù)據(jù)的離散程度或分散程度的一種度量窗轩。它表示數(shù)據(jù)集中各個數(shù)據(jù)點與數(shù)據(jù)集均值之間的差異程度夯秃。方差越大,數(shù)據(jù)點相對于均值的分散程度就越高,方差越小仓洼,數(shù)據(jù)點相對于均值的分散程度就越低箫措。
a. 計算方差示例:
在
NumPy
中使用函數(shù)np.var()
用于計算數(shù)組的方差。它的語法如下:
numpy.var(a, axis=None, dtype=None, out=None, ddof=0, keepdims=False)
b. 參數(shù)說明:
-
axis
:指定計算方差時要沿著哪個軸操作衬潦。默認(rèn)值為None
斤蔓,表示在整個數(shù)組上計算方差。 -
dtype
:可選參數(shù)镀岛,用于指定結(jié)果的數(shù)據(jù)類型弦牡。默認(rèn)值為None
桦山,表示結(jié)果的數(shù)據(jù)類型由輸入數(shù)組決定梦染。 -
out
:可選參數(shù)心例,用于指定存儲結(jié)果的輸出數(shù)組闷旧。如果未提供焕阿,則創(chuàng)建一個新的數(shù)組來存儲結(jié)果浩淘。 -
ddof
:可選參數(shù)慎王,表示自由度的調(diào)整量弧腥。默認(rèn)值為0
旨指,表示標(biāo)準(zhǔn)的樣本方差計算赏酥。通常在樣本較小的情況下,將ddof
設(shè)置為1
以進(jìn)行無偏估計谆构。 -
keepdims
:可選參數(shù)裸扶,如果設(shè)置為True
,則結(jié)果將保持與輸入數(shù)組相同的維度搬素。默認(rèn)值為False
呵晨。
c.代碼示例:
import numpy as np
if __name__ == '__main__':
# 一維數(shù)組
one_arr = np.array([5, 8, 12, 15, 20])
print("一維數(shù)組方差:", np.var(one_arr))
# 二維數(shù)組
two_arr = np.array([
[1, 2, 3, 4],
[5, 6, 7, 8]
])
print("二維數(shù)組方差:", np.var(two_arr))
print("二維數(shù)組,沿行計算方差:", np.var(two_arr, axis=1))
print("二維數(shù)組,沿列計算方差:", np.var(two_arr, axis=0))
print("-------------------------- 指定:ddof ------------------------------")
print("二維數(shù)組方差:", np.var(two_arr))
print("二維數(shù)組,沿行計算方差:", np.var(two_arr, axis=1, ddof=1))
print("二維數(shù)組,沿列計算方差:", np.var(two_arr, axis=0, ddof=1))
"""
一維數(shù)組方差: 27.6
二維數(shù)組方差: 5.25
二維數(shù)組,沿行計算方差: [1.25 1.25]
二維數(shù)組,沿列計算方差: [4. 4. 4. 4.]
-------------------------- 指定:ddof ------------------------------
二維數(shù)組方差: 5.25
二維數(shù)組,沿行計算方差: [1.66666667 1.66666667]
二維數(shù)組,沿列計算方差: [8. 8. 8. 8.]
"""
2.5 標(biāo)準(zhǔn)差
標(biāo)準(zhǔn)差是一種用于度量數(shù)據(jù)集的離散程度或分散程度的統(tǒng)計指標(biāo),它是方差的平方根熬尺。標(biāo)準(zhǔn)差用于衡量數(shù)據(jù)點相對于數(shù)據(jù)集的均值的平均偏離程度摸屠,它提供了一種對數(shù)據(jù)集中數(shù)據(jù)分布的散布情況的直觀認(rèn)識。
標(biāo)準(zhǔn)差公式:
在NumPy
中使用函數(shù)np.var()
用于計算數(shù)組的標(biāo)準(zhǔn)差粱哼,下面是代碼示例:
import numpy as np
if __name__ == '__main__':
# 一維數(shù)組
one_arr = np.array([5, 8, 12, 15, 20])
print("一維數(shù)組標(biāo)準(zhǔn)差:", np.std(one_arr))
# 二維數(shù)組
two_arr = np.array([
[1, 2, 3, 4],
[5, 6, 7, 8]
])
print("二維數(shù)組標(biāo)準(zhǔn)差:", np.std(two_arr))
print("二維數(shù)組,沿行計算標(biāo)準(zhǔn)差:", np.std(two_arr, axis=1))
print("二維數(shù)組,沿列計算標(biāo)準(zhǔn)差:", np.std(two_arr, axis=0))
"""
一維數(shù)組標(biāo)準(zhǔn)差: 5.253570214625479
二維數(shù)組標(biāo)準(zhǔn)差: 2.29128784747792
二維數(shù)組,沿行計算標(biāo)準(zhǔn)差: [1.11803399 1.11803399]
二維數(shù)組,沿列計算標(biāo)準(zhǔn)差: [2. 2. 2. 2.]
"""
2.6 最值
在numpy
中,使用np.max()
獲取數(shù)組中最大值季二,使用np.min()
獲取數(shù)組中最小值;
import numpy as np
if __name__ == '__main__':
# 一維數(shù)組
one_arr = np.array([5, 8, 12, 15, 20])
print("一維數(shù)組最大值:", np.max(one_arr))
print("一維數(shù)組最小值:", np.min(one_arr))
# 二維數(shù)組
two_arr = np.array([
[1, 2, 3, 4],
[5, 6, 7, 8]
])
print("二維數(shù)組最大值:", np.max(two_arr))
print("二維數(shù)組最小值:", np.min(two_arr))
print("------------------- 沿軸計算最值----------------------------")
print("二維數(shù)組,沿行計算最大值:", np.max(two_arr, axis=1))
print("二維數(shù)組,沿列計算最大值:", np.max(two_arr, axis=0))
"""
一維數(shù)組最大值: 20
一維數(shù)組最小值: 5
二維數(shù)組最大值: 8
二維數(shù)組最小值: 1
------------------- 沿軸計算最值----------------------------
二維數(shù)組,沿行計算最大值: [4 8]
二維數(shù)組,沿列計算最大值: [5 6 7 8]
"""
3. 廣播運(yùn)算
3.1 介紹
NumPy
中的廣播(Broadcasting
)是一種強(qiáng)大的特性皂吮,它允許在不同形狀的數(shù)組之間執(zhí)行元素級操作戒傻,而無需顯式地將數(shù)組形狀調(diào)整為相同的形狀。這使得NumPy
能夠高效地執(zhí)行各種元素級運(yùn)算蜂筹,而不需要額外的內(nèi)存消耗需纳。
具體廣播的規(guī)則如下:
- 規(guī)則1:如果兩個數(shù)組的維度不同,將形狀較小的數(shù)組的維度用1填充艺挪,直到兩個數(shù)組的維度一致不翩。
- 規(guī)則2:如果兩個數(shù)組在某個維度上相同或其中一個維度大小為 1兵扬,那么可以進(jìn)行廣播。
- 規(guī)則3:如果兩個數(shù)組在某個維度上的大小既不相同也不為1口蝠,則廣播會失敗器钟,導(dǎo)致 ValueError
3.2 規(guī)則1-示例說明
規(guī)則1:如果兩個數(shù)組的維度不同,將形狀較小的數(shù)組的維度用1填充妙蔗,直到兩個數(shù)組的維度一致傲霸。
import numpy as np
if __name__ == '__main__':
arr1 = np.array([1, 2, 3]) # 形狀:(3,)
print("數(shù)組1:", arr1)
arr2 = np.array([[10], [20]]) # 形狀:(2, 1)
print("數(shù)組2:\n", arr2)
result = arr1 + arr2
print("廣播規(guī)則1結(jié)果: \n", result)
"""
數(shù)組1: [1 2 3]
數(shù)組2:
[[10]
[20]]
廣播規(guī)則1結(jié)果:
[[11 12 13]
[21 22 23]]
"""
說明: arr1
的形狀是 (3,)
,arr2
的形狀是 (2, 1)
眉反,根據(jù)規(guī)則1昙啄,將 arr1
的形狀用1填充,變?yōu)?(1, 3)
寸五,然后兩個數(shù)組的維度一致梳凛,可以進(jìn)行廣播。
3.3 規(guī)則2-示例說明
規(guī)則2:如果兩個數(shù)組在某個維度上相同或其中一個維度大小為 1梳杏,那么可以進(jìn)行廣播韧拒。
import numpy as np
if __name__ == '__main__':
arr1 = np.array([[1, 2, 3], [4, 5, 6]]) # 形狀:(2, 3)
print("arr1:\n", arr1)
arr2 = np.array([10, 20, 30]) # 形狀:(3,)
print("arr2:", arr2)
result = arr1 + arr2
print("廣播規(guī)則2結(jié)果: \n", result)
"""
arr1:
[[1 2 3]
[4 5 6]]
arr2: [10 20 30]
廣播規(guī)則2結(jié)果:
[[11 22 33]
[14 25 36]]
"""
說明: 在進(jìn)行廣播時,NumPy會從最右邊的維度開始比較十性。在這種情況下叛溢,arr2
的最右邊的維度大小為 3,而 arr1
的對應(yīng)維度大小也為 3烁试。滿足規(guī)則2雇初,可以進(jìn)行廣播。
3.4 規(guī)則3-示例說明
如果兩個數(shù)組在某個維度上的大小既不相同也不為1减响,則廣播會失敗,導(dǎo)致 ValueError郭怪。
import numpy as np
if __name__ == '__main__':
arr1 = np.array([[1, 2, 3], [4, 5, 6]]) # 形狀:(2, 3)
print("arr1:\n ", arr1)
arr2 = np.array([10, 20]) # 形狀:(2,)
print("arr2:", arr2)
try:
result = arr1 + arr2
except ValueError as e:
result = "ValueError: {}".format(e)
print("廣播規(guī)則3結(jié)果:", result)
"""
arr1:
[[1 2 3]
[4 5 6]]
arr2: [10 20]
廣播規(guī)則3結(jié)果: ValueError: operands could not be broadcast together with shapes (2,3) (2,)
"""
說明: 在進(jìn)行廣播時支示,NumPy
會從最右邊的維度開始比較。在這種情況下鄙才,arr2
的最右邊的維度的大小為2颂鸿,而 arr1
的對應(yīng)維度的大小為3
。這兩個大小既不相同攒庵,也不為1
嘴纺,因此廣播規(guī)則3被觸發(fā),導(dǎo)致廣播失敗浓冒。
4. 矩陣運(yùn)算
4.1 創(chuàng)建矩陣
在NumPy
中,矩陣本質(zhì)上也是一個數(shù)組栽渴,擁有數(shù)組的所有屬性和方法;但矩陣又有一些不同于數(shù)組的特性和方法稳懒。如下:
- 矩陣是二維的闲擦,不能像數(shù)組一樣幻化成任意維度。
- 矩陣的乘法不同于數(shù)組乘法。
在NumPy
中墅冷,可以使用np.mat()和np.matrix()
創(chuàng)建矩陣纯路,如下代碼示例:
import numpy as np
if __name__ == '__main__':
# 使用np.matrix創(chuàng)建矩陣
matrix_a = np.matrix([[1, 2], [3, 4]])
print("matrix_a: \n {} \n matrix_a類型:{}".format(matrix_a, type(matrix_a)))
# 使用mat創(chuàng)建矩陣
matrix_b = np.mat(np.arange(4).reshape(2, 2))
print("matrix_b: \n {} \n matrix_b類型:{}".format(matrix_b, type(matrix_b)))
"""
matrix_a:
[[1 2]
[3 4]]
matrix_a類型:<class 'numpy.matrix'>
matrix_b:
[[0 1]
[2 3]]
matrix_b類型:<class 'numpy.matrix'>
"""
4.2 矩陣特有屬性
矩陣有幾個特有的屬性,如轉(zhuǎn)置矩陣寞忿、逆矩陣驰唬、共軛矩陣、共軛轉(zhuǎn)置矩陣等
import numpy as np
if __name__ == '__main__':
# 使用mat創(chuàng)建矩陣
matrix_a = np.mat(np.arange(6).reshape(2, 3))
print("matrix_a: \n", matrix_a)
# 獲取其轉(zhuǎn)置矩陣
print("matrix_a轉(zhuǎn)置矩陣: \n", matrix_a.T)
# 獲取其共軛轉(zhuǎn)置矩陣
print("matrix_a共軛轉(zhuǎn)置矩陣: \n", matrix_a.H)
# 獲取其逆矩陣
print("matrix_a逆矩陣: \n", matrix_a.I)
# 獲取其數(shù)據(jù)的視圖(ndarray類)
print("matrix_a其數(shù)據(jù)的視圖: \n", matrix_a.A)
print("matrix_a其數(shù)據(jù)的視圖-類型: \n", type(matrix_a.A))
"""
matrix_a:
[[0 1 2]
[3 4 5]]
matrix_a轉(zhuǎn)置矩陣:
[[0 3]
[1 4]
[2 5]]
matrix_a共軛轉(zhuǎn)置矩陣:
[[0 3]
[1 4]
[2 5]]
matrix_a逆矩陣:
[[-0.77777778 0.27777778]
[-0.11111111 0.11111111]
[ 0.55555556 -0.05555556]]
matrix_a其數(shù)據(jù)的視圖:
[[0 1 2]
[3 4 5]]
matrix_a其數(shù)據(jù)的視圖-類型:
<class 'numpy.ndarray'>
"""
4.3 矩陣乘法
并不是所有的矩陣都可以直接相乘腔彰,需要滿足一定規(guī)則定嗓,才可以進(jìn)行矩陣乘法運(yùn)算,規(guī)則如下:
-
列數(shù)等于行數(shù): 第一個矩陣的列數(shù)必須等于第二個矩陣的行數(shù)萍桌。如果第一個矩陣的形狀是
(m, n)
宵溅,那么第二個矩陣的形狀應(yīng)該是(n, p)
。兩個矩陣相乘的結(jié)果將是一個新矩陣上炎,其形狀為(m, p)
恃逻。 -
對應(yīng)維度的大小要一致: 除了滿足列數(shù)等于行數(shù)的條件外,對應(yīng)維度的大小也需要一致藕施。具體來說寇损,第一個矩陣的列數(shù)要與第二個矩陣的行數(shù)一致。如: 矩陣 A 形狀為
(3, 2)
和矩陣 B 形狀為(2, 4)
裳食,對應(yīng)維度的大小是2矛市,它們是一致的。
import numpy as np
if __name__ == '__main__':
# 使用mat創(chuàng)建矩陣
matrix_a = np.mat(np.random.randint(1, 10, size=(4, 2)))
print("matrix_a: \n", matrix_a)
matrix_b = np.mat(np.random.randint(1, 10, size=(2, 3)))
print("matrix_b: \n", matrix_b)
print("matrix_dot: \n", matrix_a.dot(matrix_b))
print("matrix_dot2: \n", matrix_a * matrix_b)
"""
matrix_a:
[[4 1]
[8 2]
[7 8]
[3 4]]
matrix_b:
[[7 7 3]
[3 5 7]]
matrix_dot:
[[31 33 19]
[62 66 38]
[73 89 77]
[33 41 37]]
matrix_dot2:
[[31 33 19]
[62 66 38]
[73 89 77]
[33 41 37]]
"""
對于數(shù)組而言诲祸,使用
*
相乘和使用np.dot
函數(shù)相乘是完全不同的兩種乘法浊吏;對于矩陣來說,不管是使用*
相乘還是使用np.dot
函數(shù)相乘救氯,結(jié)果都是np.dot
函數(shù)相乘的結(jié)果找田,因為矩陣沒有對應(yīng)元素相乘這個概念。
下圖是兩個矩陣相乘時,如果計算出結(jié)果的示意圖