gpt4 book ai didi

python - Numpy 获取二维数组中 arange 的索引

转载 作者:行者123 更新时间:2023-12-04 01:11:29 25 4
gpt4 key购买 nike

考虑以下 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)

关于python - Numpy 获取二维数组中 arange 的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64720553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com