亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據一維數組獲取二維 numpy 數組的索引

根據一維數組獲取二維 numpy 數組的索引

HUH函數 2023-05-23 14:40:01
我正在使用 numpy 數組我遇到了障礙,也許你可以幫助我。所以我有一個二維 numpy 數組,這個二維數組中的每個數組都有一個最大值,我需要的是獲取最大值的索引而不是二維數組的索引,而是像使用一維數組一樣使用索引,我知道我可以用它numpy.argmax來查找索引,但索引是根據二維數組而不是一維數組,也許一個例子會更好:import numpy as nparr =  np.array([[512, 523, 491],                  [512, 531, 495]])index = np.argmax(arr, axis = 1)index2 = np.argmax(arr)print(index)print(index2) index = [1, 1] index2 = 4我的意思是它做了它應該做的事情,但是如果我需要像一維數組一樣的索引怎么辦?這是我想要的輸出:index = [1, 4] 所以第一個最大值是 523,所以第一個索引是 1,第二個最大值是 531,所以第二個索引是 4,就像它是一維數組一樣。也許這是一個新手問題,但我不確定該怎么做,這只是一個例子,數組arr可以更大,所以,任何幫助將不勝感激,謝謝!
查看完整描述

3 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

我能想到的最簡單的事情就是為索引添加一個偏移量。

offset = np.arange(0,arr.shape[0]*arr.shape[1], arr.shape[1])
index1D = offset + index

對于上下文,np.arange 有 3 個參數:開始、停止和步幅。所以偏移量只是將特定行之前的元素總數添加到索引中。


查看完整回答
反對 回復 2023-05-23
?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

第一行實際上是你想要的。它返回每個嵌套數組中最大值的索引,即531在第二個嵌套數組的索引 1 中。

您可以將其與高級索引一起使用

>>> print(arr[np.arange(arr.shape[0]), index])
[523, 531]

或者將索引更改為平面索引

flat_index = index + np.arange(0, arr.size, arr.shape[1])
# flat_index == [1, 4]


查看完整回答
反對 回復 2023-05-23
?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

如果您知道二維數組的維度,則可以為每個元素添加偏移量。


例如


index = [1, 1]

offset = [0, 3]


index + offset

>>> [1, 4]

您可以通過執行很容易地獲得偏移量np.arange(len(index))*size。其中 size 是二維數組的寬度。


查看完整回答
反對 回復 2023-05-23
  • 3 回答
  • 0 關注
  • 300 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號