给定其他两个值,从1x3 numpy数组中提取值

时间:2018-11-25 01:00:27

标签: numpy

我有一个1x3的numpy整数向量。给定一对整数,我该如何提取第三个整数。 numpy向量中的每个整数都是唯一的,并且该对将不包含自身(例如3和3)。

例如:

>>> nodes
array([3, 5, 7], dtype=int16)
>>> n1 = 3
>>> n2 = 7

给出n1,n2和1x3数组,我想要中间值为5。

2 个答案:

答案 0 :(得分:4)

使用np.in1dn1中过滤出n2nodes

nodes[~np.in1d(nodes, [n1, n2])]
# array([5])

答案 1 :(得分:1)

>>> arr = np.array([3, 5, 7])
>>> n1 = 3
>>> n2 = 7
>>> arr[(arr != n1) & (arr != n2)][0]
5

这通过布尔掩码进行。首先排除与两个已知值匹配的值。因为您知道只剩下一个值,所以只需取第一个元素即可。