二维数组的行式Numpy.isin [英] Rowwise numpy.isin for 2D arrays

查看:0
本文介绍了二维数组的行式Numpy.isin的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个数组:

A = np.array([[3, 1], [4, 1], [1, 4]])
B = np.array([[0, 1, 5], [2, 4, 5], [2, 3, 5]])
是否可以对2D数组使用numpy.isin行?我想检查A[i,j]是否在B[i]中,并将结果返回到C[i,j]中。最后,我将得到以下C

np.array([[False, True], [True, False], [False, False]])

如果==运算符也可以这样做,那就太好了,那么我也可以用它来处理PyTorch。

编辑: 我也考虑了check for identical rows in different numpy arrays。这个问题有些相似,但我无法将其解决方案应用于这个略有不同的问题。

推荐答案

不确定我的代码是否完美地解决了您的问题。请在更多的测试用例上运行它以进行确认。但是我会像我在下面的代码中所做的那样,利用Numpys向量外运算能力(类似于向量外积)来做smth。如果它按预期工作,那么它也应该与pytorch一起工作。

import numpy as np
A = np.array([[3, 1], [4, 1], [1, 4]])
B = np.array([[0, 1, 5], [2, 4, 5], [2, 3, 5]])

AA = A.reshape(3, 2, 1)
BB = B.reshape(3, 1, 3)
(AA == BB).sum(-1).astype(bool)

输出:

array([[False,  True],
       [ True, False],
       [False, False]])

这篇关于二维数组的行式Numpy.isin的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆