[英]Numpy get index of arange in 2d array
考慮以下 numpy 數組:
import numpy as np
arr = np.array([np.random.permutation(4) for _ in range(4)])
array([[0, 1, 2, 3],
[3, 1, 0, 2],
[1, 2, 0, 3],
[0, 2, 3, 1]])
我希望能夠從數組中獲取 np.arange(4) 的索引。 即在第 0 行獲取索引 0,在第 1 行獲取索引 1,依此類推。
即對於這個特定的例子:
array([0, 1, 1, 2])
在 numpy 中是否有比循環遍歷每一行並獲取索引更有效的方法:
alist = []
for ridx in range(arr.shape[0]):
alist.append(arr[ridx].tolist().index(ridx))
ans = np.array(alist)
嘗試這個
np.nonzero(arr == np.arange(arr.shape[0])[:,None])[1]
Out[15]: array([0, 1, 1, 2], dtype=int64)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.