是否可以更換np.concatenate([np.where(x == i)[0] for i in range(y)])與不涉及循環(huán)的東西?我想獲取一個數(shù)組 x,例如 [0, 1, 2, 0 , 2, 2] 和一個數(shù)字 y,例如本例中的 2,并輸出一個數(shù)組 [0, 3, 1, 2, 4, 5 ]。例如,對于數(shù)組中的每個整數(shù),寫入它們的索引位置,以便它們“按順序”。也許某種 numpy 函數(shù)可以比這個列表理解提供性能提升?
2 回答

慕工程0101907
TA貢獻1887條經(jīng)驗 獲得超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])

慕雪6442864
TA貢獻1812條經(jīng)驗 獲得超5個贊
使用argsort就可以了。
numpy.argsort([0,?1,?2,?0?,?2,?2]) =>?array([0,?3,?1,?2,?4,?5])
- 2 回答
- 0 關(guān)注
- 175 瀏覽
添加回答
舉報
0/150
提交
取消