亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決Python報(bào)錯(cuò):ValueError:operands?could?not?be?broadcast?together?with?shapes

 更新時(shí)間:2023年02月20日 09:42:37   作者:來知曉  
這篇文章主要給大家介紹了關(guān)于解決Python報(bào)錯(cuò):ValueError:operands?could?not?be?broadcast?together?with?shapes的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

問題描述

在做矩陣數(shù)據(jù)的歸一化處理時(shí),遇到個(gè)報(bào)錯(cuò):ValueError: operands could not be broadcast together with shapes (2,32) (2,) 。

源碼片段如下:

def normalization(X, set_axis): # for 2d matrix
    Xmin = np.min(X, axis=set_axis) # axis=0, the col min; else, the row min;
    Xmax = np.max(X, axis=set_axis)
    Xmu = np.mean(X, axis=set_axis)
#    print(Xmin.shape)
    X_norm = (X - Xmu) / (Xmax - Xmin)
    return X_norm

X = np.arange(0, 64).reshape(2, 32)
X_norm = normalization(X, 1)

根據(jù)矩陣乘法廣播擴(kuò)展的原則,只要有一個(gè)維度的大小相同就能擴(kuò)展,但這里卻失敗了,仔細(xì)定位了下,終于找到原因。

問題解決

問題根因

最后的原因竟然是:打印Xmin.shape后顯示的結(jié)果(2,),個(gè)人理解錯(cuò)誤。 原以為:(2,)表示的是兩行一列的意思,而實(shí)際上(2,)表示只有1維,是個(gè)向量。

雖然該向量本質(zhì)也是一行兩列,但是為了向量運(yùn)算方便,不區(qū)分方向、行列,而廣播支持的必須是矩陣,維度必須2維及以上。

所以解決方法是升維成二維矩陣,需要將Xmin擴(kuò)維成矩陣,最后的shape表示為(2,1),表征2行1列二維數(shù)據(jù),之后就可以進(jìn)行廣播運(yùn)算了。

由此可以看出,對基礎(chǔ)知識的深入理解很重要。

修改方法

在源碼片段第4行后,添加如下其中一種代碼即可:

    # 擴(kuò)維方法1
    Xmin= Xmin[:, np.newaxis]  # 從列的維度擴(kuò)維, shape成(2, 1)
    Xmax= Xmax[:, np.newaxis]  # [np.newaxis, :]則是從行的維度擴(kuò)維,shape成(1, 2)
    Xmu= Xmu[:, np.newaxis]

    # 擴(kuò)維方法2
    Xmin = Xmin.reshape(X.shape[0], 1)
    Xmax = Xmax.reshape(X.shape[0], 1)
    Xmu = Xmu.reshape(X.shape[0], 1)

進(jìn)階舉例

對該知識點(diǎn)的深入,可以小結(jié)為,[]表示一個(gè)維度,如只有一個(gè)[],則表示向量,兩個(gè)嵌套則表示二維矩陣,3個(gè)嵌套則表示三維矩陣。

要做廣播的基礎(chǔ),首先是一維以上的矩陣,系統(tǒng)不支持一維向量的廣播擴(kuò)展。

代碼示例如下:

import numpy as np

x1 = [1, 2]  # 一維向量,沒有行列之分,只有元素個(gè)數(shù)
x2 = [[1], [2]] # 二維矩陣,大小為:2*1
x3 = [[1, 2], [3, 4]] # 二維矩陣,大小為:2*2
x1 = np.array(x1)
x2 = np.array(x2)
x3 = np.array(x3)
print(x1.shape)
print(x2.shape)
print(x3.shape)

參考資料

How to Fix: ValueError: Operands could not be broadcast together with shapes?

總結(jié)

到此這篇關(guān)于解決Python報(bào)錯(cuò):ValueError:operands could not be broadcast together with shapes的文章就介紹到這了,更多相關(guān)Python報(bào)錯(cuò)ValueError內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python實(shí)現(xiàn)批處理文件

    python實(shí)現(xiàn)批處理文件

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)批處理文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí)

    Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí)

    這篇文章主要介紹了Python基礎(chǔ)之tkinter圖形化界面學(xué)習(xí),文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python+requests+pytest接口自動(dòng)化的實(shí)現(xiàn)示例

    python+requests+pytest接口自動(dòng)化的實(shí)現(xiàn)示例

    這篇文章主要介紹了python+requests+pytest接口自動(dòng)化的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 使用python實(shí)現(xiàn)數(shù)據(jù)篩查

    使用python實(shí)現(xiàn)數(shù)據(jù)篩查

    一般數(shù)據(jù)篩查可以通過Python中的pandas庫來實(shí)現(xiàn),下面小編就來為大家介紹一下Python如何利用pandas實(shí)現(xiàn)數(shù)據(jù)篩查,感興趣的小伙伴可以一起學(xué)習(xí)一下
    2023-10-10
  • 在Python中輸入一個(gè)以空格為間隔的數(shù)組方法

    在Python中輸入一個(gè)以空格為間隔的數(shù)組方法

    今天小編就為大家分享一篇在Python中輸入一個(gè)以空格為間隔的數(shù)組方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • python中常用檢測字符串相關(guān)函數(shù)匯總

    python中常用檢測字符串相關(guān)函數(shù)匯總

    這篇文章主要介紹了python中常用檢測字符串相關(guān)函數(shù),實(shí)例匯總了Python針對字符串?dāng)?shù)字、字母、大小寫等常用檢測函數(shù),非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Python如何向現(xiàn)有的DataFrame添加新列示例代碼

    Python如何向現(xiàn)有的DataFrame添加新列示例代碼

    Pandas庫中的DataFrame是處理表格數(shù)據(jù)的主要數(shù)據(jù)結(jié)構(gòu),添加新列有多種方法,包括使用現(xiàn)有列的值、創(chuàng)建全為零或全為一的列、或者直接添加一個(gè)由特定值組成的列,這些方法在處理數(shù)據(jù)時(shí)非常有用,需要的朋友可以參考下
    2024-11-11
  • python多任務(wù)及返回值的處理方法

    python多任務(wù)及返回值的處理方法

    今天小編就為大家分享一篇python多任務(wù)及返回值的處理方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 使用python驗(yàn)證代理ip是否可用的實(shí)現(xiàn)方法

    使用python驗(yàn)證代理ip是否可用的實(shí)現(xiàn)方法

    驗(yàn)證代理IP是否可用。原理是使用代理IP訪問指定網(wǎng)站,如果返回狀態(tài)為200,表示這個(gè)代理是可以使用的。這篇文章重點(diǎn)給大家介紹使用python驗(yàn)證代理ip是否可用的實(shí)現(xiàn)方法,感興趣的朋友一起看看吧
    2018-07-07
  • Python學(xué)習(xí)筆記之裝飾器

    Python學(xué)習(xí)筆記之裝飾器

    這篇文章主要介紹了Python 裝飾器的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08

最新評論