查找多个索引,但数组的长度始终为1

时间:2019-02-27 10:29:56

标签: python-3.x numpy

(再一次)看起来微不足道,但让我感到难过。

我需要在numpy数组中找到多个值的索引。我可以使用whereisin进行此操作,但是无论找到多少索引,结果答案的长度始终为1。例子

import numpy as np

a = [1,3,5,7,9,11,13,15]
b = [1,7,13]

x = np.where(np.isin(a,b))

print(x)
print(len(x))

这将返回

(array([0, 3, 6]),)
1

我认为是因为数组是元组中的单个项目。如何只返回数组?

1 个答案:

答案 0 :(得分:1)

只需使用

x = np.where(np.isin(a,b))[0]

达到您的期望。
正如hpaulj在注释中指出的那样,where对于每个输入数组维返回一个具有一个数组的元组,在这种情况下,只有一个,这就是x是长度为1的元组的原因。