Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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 NumPy:如果一列';s值不匹配_Python_Arrays_Numpy - Fatal编程技术网

Python NumPy:如果一列';s值不匹配

Python NumPy:如果一列';s值不匹配,python,arrays,numpy,Python,Arrays,Numpy,我有两个NumPy阵列: a1 = array([[ 262.99182129, 213. , 1. ], [ 311.98925781, 271.99050903, 2. ], [ 383. , 342. , 3. ], [ 372.16494751, 348.83505249, 4. ], [ 214.55

我有两个NumPy阵列:

a1 = 
array([[ 262.99182129,  213.        ,    1.        ],
       [ 311.98925781,  271.99050903,    2.        ],
       [ 383.        ,  342.        ,    3.        ],
       [ 372.16494751,  348.83505249,    4.        ],
       [ 214.55493164,  137.01008606,    5.        ],
       [ 138.29714966,  199.75      ,    6.        ],
       [ 289.75      ,  220.75      ,    7.        ],
       [ 239.        ,  279.        ,    8.        ],
       [ 130.75      ,  348.25      ,    9.        ]])

a2 = 
array([[ 265.78259277,  212.99705505,    1.        ],
       [ 384.23312378,  340.99707031,    3.        ],
       [ 373.66967773,  347.96688843,    4.        ],
       [ 217.91461182,  137.2791748 ,    5.        ],
       [ 141.35340881,  199.38366699,    6.        ],
       [ 292.24401855,  220.83808899,    7.        ],
       [ 241.53366089,  278.56951904,    8.        ],
       [ 133.26490784,  347.14279175,    9.        ]])
实际上会有数千行

但是正如您所看到的,
a2
中的第三列没有值
2.0

我只想从
a1
中删除在
a2
的任何一行中都找不到第三列值的行

快速执行此操作的基本方法/快捷方式是什么?

一个选项用于检查
a1
第2列中的每个值是否位于
a2
第2列中,并使用生成的布尔数组对
a1
的行进行索引

您可以按如下方式执行此操作:

>>> a1[np.in1d(a1[:, 2], a2[:, 2])]
array([[ 262.99182129,  213.        ,    1.        ],
       [ 383.        ,  342.        ,    3.        ],
       [ 372.16494751,  348.83505249,    4.        ],
       [ 214.55493164,  137.01008606,    5.        ],
       [ 138.29714966,  199.75      ,    6.        ],
       [ 289.75      ,  220.75      ,    7.        ],
       [ 239.        ,  279.        ,    8.        ],
       [ 130.75      ,  348.25      ,    9.        ]])
根据需要,
a1
中第三列中带有
2
的行不在此数组中