我有一个1x3的numpy整数向量。给定一对整数,我该如何提取第三个整数。 numpy向量中的每个整数都是唯一的,并且该对将不包含自身(例如3和3)。
例如:
>>> nodes
array([3, 5, 7], dtype=int16)
>>> n1 = 3
>>> n2 = 7
给出n1,n2和1x3数组,我想要中间值为5。
答案 0 :(得分:4)
使用np.in1d
从n1
中过滤出n2
和nodes
:
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
这通过布尔掩码进行。首先排除与两个已知值匹配的值。因为您知道只剩下一个值,所以只需取第一个元素即可。