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

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

根據numpy中的條件隨機選擇索引

根據numpy中的條件隨機選擇索引

守著一只汪 2023-09-05 17:14:12
假設我有 2D numpy 數組,值為 0 和 1。我想隨機選擇一個包含 1 的索引。有沒有有效的方法可以使用 來做到這一點numpy?我用純Python實現了它,但是太慢了。輸入示例:[[0, 1], [1, 0]]輸出:(0, 1)編輯:為了澄清:我希望我的函數獲取值屬于 {0, 1} 的 2D numpy 數組。我希望輸出是從給定數組中隨機(均勻)選取值的元組(2D 索引),該值等于 1。EDIT2:根據 Paul H 的建議,我想出了這個:    nonzero = np.nonzero(a)         return random.choice(list(zip(nonzero)))但它不適用于 numpy 的隨機選擇,僅適用于 python 的隨機選擇。有沒有辦法可以更好的優化呢?
查看完整描述

2 回答

?
犯罪嫌疑人X

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

從那里獲取所有非零坐標和樣本更容易:


xs,ys = np.where([[0, 1], [1, 0]])


# randomly pick a number:

idx = np.random.choice(np.arange(len(xs)) )


# output:

out = xs[idx], ys[idx]


查看完整回答
反對 回復 2023-09-05
?
慕村225694

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

你可以argwhere嘗試permutation


a = np.array([[0, 1], [1, 0]])


b = np.argwhere(a)

tuple(np.random.permutation(b)[0])


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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