簡體   English   中英

Numpy在二維數組中獲取arange的索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM