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

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

使用 numpy 避免循環或列表理解

使用 numpy 避免循環或列表理解

PHP
冉冉說 2023-11-09 10:16:38
是否可以更換np.concatenate([np.where(x == i)[0] for i in range(y)])與不涉及循環的東西?我想獲取一個數組 x,例如 [0, 1, 2, 0 , 2, 2] 和一個數字 y,例如本例中的 2,并輸出一個數組 [0, 3, 1, 2, 4, 5 ]。例如,對于數組中的每個整數,寫入它們的索引位置,以便它們“按順序”。也許某種 numpy 函數可以比這個列表理解提供性能提升?
查看完整描述

2 回答

?
慕工程0101907

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

這是一種使用的方法argsort:


# settings

x = np.array([0, 1, 2, 0 , 2, 2])

y = 2


# sort the index

u = np.argsort(x)


# filter those that are larger than y

mask = x[u]<=y

u[mask]

輸出:


array([0, 3, 1, 2, 4, 5])


查看完整回答
反對 回復 2023-11-09
?
慕雪6442864

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

使用argsort就可以了。

numpy.argsort([0,?1,?2,?0?,?2,?2])
=>?array([0,?3,?1,?2,?4,?5])


查看完整回答
反對 回復 2023-11-09
  • 2 回答
  • 0 關注
  • 178 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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