Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays_Numpy_Scipy - Fatal编程技术网

在Python中,如何通过将值与另一个数组进行比较来从一个数组返回值?

在Python中,如何通过将值与另一个数组进行比较来从一个数组返回值?,python,arrays,numpy,scipy,Python,Arrays,Numpy,Scipy,我有两个阵列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] 我使用以下代码尝试了此操作,但它返回一个空数组: import numpy as np A = np.array([[1, 2, 3, 4], [5, 6, 7, 8

我有两个阵列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]
我使用以下代码尝试了此操作,但它返回一个空数组:

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)
您可以使用检查
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]