第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

與 axis=0 相比,np.argmin(arr, axis=1) 在 2D 和 3D 數(shù)組上

與 axis=0 相比,np.argmin(arr, axis=1) 在 2D 和 3D 數(shù)組上

幕布斯7119047 2023-07-18 17:53:30
我知道如何np.argmin(arr, axis=0)運(yùn)作。但np.argmin(arr, axis=1)讓我很困惑。示例1:代碼:a2 = np.array([[1. , 2. , 3.3],               [4. , 5. , 6.5]])np.argmin(a2, axis=1)輸出:array([0, 0], dtype=int64)困惑:我的困惑是,共有 2 個(gè)索引,總共 3 列。那為什么它的輸出是(0,0)呢?它應(yīng)該給出以下輸出:預(yù)期輸出#1:array([0], dtype=int64)原因: 因?yàn)?,它找到了“索?”中最低的元素。預(yù)期輸出#2:array([0, 0, 0], dtype=int64)原因: 因?yàn)椋趯⑺饕?0 的元素與索引 1 的元素進(jìn)行比較之后。應(yīng)該說(shuō),每次我對(duì)這兩個(gè)索引進(jìn)行比較時(shí),我都找到了索引 0 中的最低元素示例2:代碼:a5 = np.array([[[ 1,  2,  3,  4],                [ 4,  5,  6,  7],                [ 7,  8,  9, 10]],               [[10, 11, 12, 13],                [16, 17, 18, 19],                [19, 20, 21, 22]]])np.argmin(a5, axis=1)輸出:array([[0, 0, 0, 0],       [0, 0, 0, 0]], dtype=int64)困惑: 現(xiàn)在為什么它在輸出中給出 4 列和 2 行?
查看完整描述

2 回答

?
慕村225694

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊

無(wú)論軸號(hào)如何,np.min和的處理都是相同的。argmin0 并不意味著比 1 或 2 更特殊的東西。在所有情況下,指定的軸都會(huì)從結(jié)果中刪除(與 相同np.sum)。


讓我們做一些更隨機(jī)、更有趣的事情:


In [216]: arr = np.arange(24)

In [218]: np.random.shuffle(arr)

In [219]: arr

Out[219]: 

array([10,  2, 12, 11, 15,  8, 17, 20, 13, 21, 14,  1, 22,  7,  3,  5,  9,

        0, 19, 16, 18,  6, 23,  4])

In [220]: arr = arr.reshape(2,3,4)

In [221]: arr

Out[221]: 

array([[[10,  2, 12, 11],

        [15,  8, 17, 20],

        [13, 21, 14,  1]],


       [[22,  7,  3,  5],

        [ 9,  0, 19, 16],

        [18,  6, 23,  4]]])

使用axis=0,確定每個(gè)“行/列”元素的哪個(gè)“平面”具有最小值。


In [222]: np.min(arr, axis=0)

Out[222]: 

array([[10,  2,  3,  5],

       [ 9,  0, 17, 16],

       [13,  6, 14,  1]])

In [223]: np.argmin(arr, axis=0)

Out[223]: 

array([[0, 0, 1, 1],

       [1, 1, 0, 1],

       [0, 1, 0, 0]])

argmin值是大小為 2 的維度的值索引值。10位于第一個(gè)平面, 位于3第二個(gè)平面,依此類推。


對(duì)軸 2(行)做同樣的事情:


In [224]: np.min(arr, axis=2)

Out[224]: 

array([[2, 8, 1],

       [3, 0, 4]])

In [225]: np.argmin(arr, axis=2)

Out[225]: 

array([[1, 1, 3],

       [2, 1, 3]])

位于2第二列、1第四列等。


使用它argmin來(lái)獲取min值需要熟悉高級(jí)索引:


In [226]: arr[[[0],[1]], [0,1,2], _225]     # Out[225] argmin

Out[226]: 

array([[2, 8, 1],

       [3, 0, 4]])

這里我使用 (2,1) 和 (3,) 數(shù)組(或可以制成數(shù)組的列表),它們將一起廣播以匹配 (2,3) 索引argmin。他們一起從 (2,3,4) 形狀中選取一個(gè) (2,3) 值數(shù)組arr。


一個(gè)新的功能take_along_axis應(yīng)該會(huì)讓應(yīng)用更argmin容易。它有一個(gè)例子。此處應(yīng)用:


In [236]: idx = _225    

In [237]: np.take_along_axis(arr, idx[...,None], axis=2)

Out[237]: 

array([[[2],

        [8],

        [1]],


       [[3],

        [0],

        [4]]])

這是Out[224] np.min展開為 3d (2,3,1) 形狀的數(shù)組。在顯示中挑選出最少的元素可能會(huì)更容易Out[221]。


In [238]: idx[...,None]

Out[238]: 

array([[[1],

        [1],

        [3]],


       [[2],

        [1],

        [3]]])


查看完整回答
反對(duì) 回復(fù) 2023-07-18
?
郎朗坤

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊

看來(lái)我也無(wú)法完全理解這些符號(hào),因?yàn)槲铱偸前l(fā)現(xiàn)自己將最后一個(gè)軸與最后一個(gè)軸之前的軸混淆了:

2D模型(行-列)

http://img1.sycdn.imooc.com//64b661560001b1fe06380245.jpg

np.argmin不幸的是,不同軸的結(jié)果是:

np.argmin(arr, axis=0)    np.argmin(arr, axis=1) 
       [0 0 1]                    [0 2]

3D模型(水平-行-列)

http://img1.sycdn.imooc.com//64b661640001c60a08980288.jpg

這也很接近:

np.argmin(arr, axis=0)    np.argmin(arr, axis=1)    np.argmin(arr, axis=2) 
       [0 0]                      [0 1]                       [0 1]
       [1 0]                      [1 1]                       [0 0]

再說(shuō)一次,除了axis=1與 交換之外,這工作得很好axis=2。

我不知道這個(gè)神奇的交換從何而來(lái),但希望這個(gè)圖像有助于OP理解軸如何與維度聯(lián)系起來(lái)。

如果有人能評(píng)論為什么我需要特別應(yīng)用規(guī)則,那就太好了Swap last two axes of your expected output。


查看完整回答
反對(duì) 回復(fù) 2023-07-18
  • 2 回答
  • 0 關(guān)注
  • 158 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)