如何通过将值与 Python 中的另一个数组进行比较来从一个数组中获取 return 值?

How to return values from one array by comparing values with another array in Python?

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

A = [[ 1  2  3  4]
     [ 5  6  7  8]
     [ 9 10 11 12]
     [13 14 15 16]]

B = [3, 11]

现在我需要 A 的第 4 列中的值来匹配 B 中具有值的行和 A 的第 3 列中的值。对于这种特殊情况,输出数组 C 应该是:

C = [4, 12]

我试过这个,使用下面的代码,但是它 returns 一个空数组:

import numpy as np
A = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]])
B = np.array([3, 11])
C = A[np.where(B[:] == A[:][2]), 3]
print(C)

您可以使用 numpy.in1d 检查 B 中的哪些项目与 A 的第三列中的项目匹配。

>>> np.in1d(A[:, 2], B)
array([ True, False,  True, False], dtype=bool)

现在使用这个布尔数组简单地索引 A 的第四列:

>>> A[:,3][np.in1d(A[:, 2], B)]
array([ 4, 12])

这是一个纯粹的 Python 实现,如果可以的话:

>>> A = [[ 1,  2,  3,  4], [ 5,  6,  7,  8], [ 9, 10, 11, 12], [13, 14, 15, 16]]
>>> B = [3,11]
>>> C = [l[3] for l in A if l[2] in B]
>>> C
[4, 12]