python - 二维数组的按行 numpy.isin

标签 python numpy pytorch

我有两个数组:

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

是否可以使用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 向量外运算能力(类似于向量外积)。如果它按预期工作,它也应该与 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]])

关于python - 二维数组的按行 numpy.isin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67870579/

相关文章:

python - 如何跳过 url 中的 Unicode 错误

python - 在 YOLO 中无法获得正确的 yolo 预训练权重

Python -> 告诉一个带有 print 语句的程序到 "not print"

python - 错误 "ModuleNotFoundError: No module named ' numpy'";但已安装 NumPy

python - 理解 np.all 并获取删除的索引时缺少元素

python - 使用 numpy unique 计数时避免使用 python for 循环来提高性能

python - 在神经网络中关闭或忽略 pytorch 中的神经元

python - 将 PyTorch 代码移至 GPU 时处理大幅减速问题

python (操作系统): how to simulate pressing Enter while executing an external application

python - 当查询以注释开始时,python 的 sqlite3 中的隐式提交