Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取数组值的索引_Python_Numpy - Fatal编程技术网

Python 获取数组值的索引

Python 获取数组值的索引,python,numpy,Python,Numpy,我有两个数组,如下所示: e = np.array([True, False, True, True]) f = np.array([True, False, False, True]) 我想得到索引I,其中e[I]和f[I]==True 上述项目的预期产出为: [0,3] since e[0] == True and f[0] == True; e[3] and f[3] ==True 可能会有更多这样的匹配,所以我需要一个满足上述条件的所有索引的列表 我尝试通过以下操作查找匹配值

我有两个数组,如下所示:

e = np.array([True, False, True, True])    
f = np.array([True, False, False, True])
我想得到索引
I
,其中
e[I]和f[I]==True

上述项目的预期产出为:

[0,3] since e[0] == True and f[0] == True; e[3] and f[3] ==True
可能会有更多这样的匹配,所以我需要一个满足上述条件的所有索引的列表

我尝试通过以下操作查找匹配值的列表:

list(e&f)
Out[474]:
[True, False, False, True]
为了获得索引,我想我可以使用
列表的
.index(True)
。但它不起作用,或者只给出0的输出。也许只是给出第一个索引,而不是全部索引


最后,我需要将1添加到输出的每个元素中,因此输出应该是
[1,4]
,而不是
[0,3]
,但这很容易,如果我得到索引,我可以这样做,

您可以使用列表理解来选择它们:

>>> e = np.array([True, False, True, True])    
>>> f = np.array([True, False, False, True])
>>> [i for i,v in enumerate(e&f, 1) if v]
[1, 4]

使用可以指定初始索引,在本例中为1。

您可以使用列表理解来选择它们:

>>> e = np.array([True, False, True, True])    
>>> f = np.array([True, False, False, True])
>>> [i for i,v in enumerate(e&f, 1) if v]
[1, 4]

使用可以指定初始索引,在本例中为1。

查看文档中的numpy.where

np.where(e&f)[0]
产出:

 array([0, 3])

看一看numpy.where在文档中的位置

np.where(e&f)[0]
产出:

 array([0, 3])
或者仅仅是这个

np.where(e&f)
或者仅仅是这个

np.where(e&f)

如果您不想依赖numpy,还可以做一些其他事情:

e=[True, False, True, True]
f=[True, False, False, True]

for idx, val in enumerate(e):
  if cmp(e[idx], f[idx]) is 0:
    print idx+1, val

如果您不想依赖numpy,还可以做一些其他事情:

e=[True, False, True, True]
f=[True, False, False, True]

for idx, val in enumerate(e):
  if cmp(e[idx], f[idx]) is 0:
    print idx+1, val

您已经询问了几个有关搜索numpy数组的问题。你不是从答案中学到了一般原则吗?看起来你只是把你的全部家庭作业交给我们,让我们帮你做。不,没有家庭作业。我正在做一些工作。我知道numpy阵列的一般原理。但我的理解是,为了得到一个我们可以使用的索引。列表的索引函数。但它只给出了一个值您已经问了几个关于搜索numpy数组的问题。你不是从答案中学到了一般原则吗?看起来你只是把你的全部家庭作业交给我们,让我们帮你做。不,没有家庭作业。我正在做一些工作。我知道numpy阵列的一般原理。但我的理解是,为了得到一个我们可以使用的索引。列表的索引函数。但它只给出了一个value@Baktaawar:您可以使用
enumerate()
,尽管可能有更好的
numpy
具体方法。@Baktaawar:您可以使用
enumerate()
,尽管可能有更好的
numpy
具体方法。
np.where(e&f)[0]+1
返回带有基于1的索引的数组。
np.其中(e&f)[0]+1
返回带有基于1的索引的数组。感谢Andy修复我的复制和粘贴问题:d感谢Andy修复我的复制和粘贴问题:请编辑以了解更多信息。不鼓励只编写代码和“试试这个”答案,因为它们不包含可搜索的内容,也不解释为什么有人应该“试试这个”。我们在这里努力成为一个知识资源。请编辑更多信息。不鼓励只编写代码和“试试这个”答案,因为它们不包含可搜索的内容,也不解释为什么有人应该“试试这个”。我们努力成为知识的源泉。