当前位置: 首页 > 知识库问答 >
问题:

在给定相同索引和返回匹配数的情况下,检查两个数组中的匹配元素

韦安顺
2023-03-14

给定两个数组,是否有一种numpy非循环方法来检查数组之间的每个第i个索引是否匹配,即如果a[i]==b[i],是否检查每个i?

a = np.array([1,2,3,4,5,6,7,8])
b = np.array([2,3,4,5,6,7,8,9])
Output:  0 matches

我想这已经被问过了,但是我找不到我要找的东西,如果是的话,我很抱歉。

共有3个答案

轩辕越泽
2023-03-14

其他答案的另一个变体:

np.flatnonzero(a == b)
厉念
2023-03-14

您可以使用numpy.where提取两个值满足指定条件的索引:

import numpy

a = numpy.array([0, 1, 2, 3, 4, 5, 6])
b = numpy.array([6, 5, 4, 3, 2, 1, 6])
numpy.where(a==b)
(array([3, 6]),)
盖弘毅
2023-03-14

试试这个:

np.arange(len(a))[a==b]

它创建一个从0到长度a的新数组,表示索引。然后使用a==b对数组进行切片,返回ab相同的索引。

此外,来自@Reblochon-Masque:

您可以使用numpy.where提取两个值满足指定条件的索引:

import numpy

a = numpy.array([0, 1, 2, 3, 4, 5, 6])
b = numpy.array([6, 5, 4, 3, 2, 1, 6])
numpy.where(a==b)
(array([3, 6]),)
 类似资料:
  • 我正在尝试用Java编写一个函数,它接受两个数组,并对数组1中的索引值求和,其中的值与数组2匹配,例如。 数组1={15、6、99、12、35} 数组2={1,12,7,99,35} 匹配“Array1[索引]”值=2(99)、3(12)、4(35) 因此,返回9(2 3 4) 我建议使用以下方法进行此操作: 但是如果Array2中有一个不匹配的值,我也想返回-1。所以在上面的情况下,1和7不在A

  • 问题内容: 我有两个numpy数组A和B。A包含唯一值,而B是A的子数组。 例如: 问题答案: 您可以使用带有- 如果您关心维护订单,也可以使用- 对于一般情况,当&是未排序的数组时,您可以在中引入选项,就像这样- 为了解决一般情况,我还会添加我最喜欢的内容- 样品运行-

  • 我有两个没有匹配值的表表表1 表2 我想更新下面的表2,这意味着对于103,我想要表1中的101个值 我曾经 除此之外,还有其他查询要使用吗?

  • 我试图检索一个带有特定'_ID'的文档和一个带有另一个特定'_ID'的嵌入文档。 我的文档是一个目录,它包含一个课程数组。 示例数据: 在mongod中,我运行这个聚合查询,并得到我想要的结果: 正如我前面提到的,我已经得到了一个目录实例,里面有一个课程实例。

  • 我有以下两个响应,我需要检查(元素的顺序不同)。尝试了不同的事情,但没有任何结果。任何帮助都将不胜感激!

  • 问题内容: 我有两个数组 我需要将此合并到以编程方式匹配用户ID的单个数组 最终的数组应该像 有没有一种更清洁的方法来执行此操作,我的应用程序中有下划线库,但是我找不到一种干净的方法来实现此目的 问题答案: 使用下划线的解决方案: _.map 跨成员 使用 _.findWhere 查找匹配的成员信息 **** _。省略 匹配成员信息中的ID密钥 _。 使用会员信息 扩展 会员