相关疑难解决方法(0)

在numpy数组中查找多个值的行索引

我有一个数组X:

X = np.array([[4,  2],
              [9,  3],
              [8,  5],
              [3,  3],
              [5,  6]])
Run Code Online (Sandbox Code Playgroud)

我希望在这个数组中找到几个值的行的索引:

searched_values = np.array([[4, 2],
                            [3, 3],
                            [5, 6]])
Run Code Online (Sandbox Code Playgroud)

对于这个例子,我想要一个结果,如:

[0,3,4]
Run Code Online (Sandbox Code Playgroud)

我有一个代码这样做,但我认为它过于复杂:

X = np.array([[4,  2],
              [9,  3],
              [8,  5],
              [3,  3],
              [5,  6]])

searched_values = np.array([[4, 2],
                            [3, 3],
                            [5, 6]])

result = []

for s in searched_values:
    idx = np.argwhere([np.all((X-s)==0, axis=1)])[0][1]
    result.append(idx)

print(result)
Run Code Online (Sandbox Code Playgroud)

我找到了类似问题的答案,但它仅适用于1d阵列.

有没有办法以更简单的方式做我想做的事情?

python arrays numpy

14
推荐指数
3
解决办法
6702
查看次数

numpy广播如何表现得更快?

在以下问题中, /sf/answers/2803929481/

Numpy的广播提供的解决方案比使用与np.view()配对的np.setdiff1d()快6倍.它是如何设法做到这一点的?

并且使用A[~((A[:,None,:] == B).all(-1)).any(1)]速度更快.有趣,但提出了另一个问题.这表现得更好?

python numpy

6
推荐指数
1
解决办法
388
查看次数

标签 统计

numpy ×2

python ×2

arrays ×1