17.python(庫)numpy下:數(shù)組運(yùn)算

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é)果的示意圖


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末着憨,一起剝皮案震驚了整個濱河市墩衙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌甲抖,老刑警劉巖漆改,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異准谚,居然都是意外死亡挫剑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門氛魁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暮顺,“玉大人厅篓,你說我怎么就攤上這事〈仿耄” “怎么了羽氮?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長惫恼。 經(jīng)常有香客問我档押,道長,這世上最難降的妖魔是什么祈纯? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任令宿,我火速辦了婚禮,結(jié)果婚禮上腕窥,老公的妹妹穿的比我還像新娘粒没。我一直安慰自己,他們只是感情好簇爆,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布癞松。 她就那樣靜靜地躺著,像睡著了一般入蛆。 火紅的嫁衣襯著肌膚如雪响蓉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天哨毁,我揣著相機(jī)與錄音枫甲,去河邊找鬼。 笑死扼褪,一個胖子當(dāng)著我的面吹牛想幻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播迎捺,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼举畸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了凳枝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤跋核,失蹤者是張志新(化名)和其女友劉穎岖瑰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體砂代,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蹋订,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了刻伊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片露戒。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡椒功,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出智什,到底是詐尸還是另有隱情动漾,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布荠锭,位于F島的核電站旱眯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏证九。R本人自食惡果不足惜删豺,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望愧怜。 院中可真熱鬧呀页,春花似錦、人聲如沸拥坛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渴逻。三九已至疾党,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間惨奕,已是汗流浹背雪位。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留梨撞,地道東北人雹洗。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像卧波,于是被迫代替她去往敵國和親时肿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容