繁体   English   中英

如何在 numpy 数组中查找元素的索引?

[英]How to find the index of an element in an numpy array?

我有一个数组df ,其中每个元素都是 2 个数字的列表。 给定一个元素p = [18, 169] 我想在df中找到此类元素p的索引。 给定df

[[[13, 169],    [18, 169],  [183, 169]],
 [[-183, 169],  [18, 169],  [183, 169]],
 [[18, 169],    [-18, 169], [183, 169]]]

使用(df == p).all(-1) ,我得到

array([[False,  True, False],
       [False,  True, False],
       [ True, False, False]])

我想要的是

[[0, 1],
 [1, 1],
 [2, 0]]

您能否详细说明如何执行此操作?

import numpy as np
df = np.array([[[13, 169],   [18, 169], [183, 169]],
               [[-183, 169], [18, 169], [183, 169]],
               [[18, 169],   [-18, 169], [183, 169]]])
p = [18, 169]
ind = (df == p).all(-1)
ind

你用(df==p).all(-1)计算的是一个mask 它们有很多用途,但您可以直接使用它来计算您想要的值。

# True or false at each coordinate
mask = (df==p).all(-1)

# Extract the coordinates where the mask is True
result = np.argwhere(mask)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM