numpy - 给定两个向量,得到一个 bool 值矩阵,指示向量元素在何处相等

标签 numpy matrix vector

我有两个向量:长度为 mA 和长度为 nB。 我想通过 n 得到一个 m 矩阵,其元素 (x,y) 等于 A[x] == B[y].

在 numpy 中构建这个矩阵的最快方法是什么?

最佳答案

使用NumPy's broadcasting feature通过使用 None/np.newaxisA 扩展为 2D 版本然后与 1D 数组 B 进行比较,得到所需的 2D bool 数组 -

A[:,None] == B

创建 A2D 版本的替代方法是 reshape ,使第二个轴的长度为 length = 1 。因此,另一种解决方案是 -

A.reshape(-1,1) == B

sample 运行-

In [89]: A
Out[89]: array([0, 1, 2, 3])

In [90]: B
Out[90]: array([4, 3, 2, 1, 0])

In [91]: A[:,None] == B
Out[91]: 
array([[False, False, False, False,  True],
       [False, False, False,  True, False],
       [False, False,  True, False, False],
       [False,  True, False, False, False]], dtype=bool)

关于numpy - 给定两个向量,得到一个 bool 值矩阵,指示向量元素在何处相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40834127/

相关文章:

python - 在 python 中将张量 T[a1,a2,a3] 适当 reshape 为矩阵 M[a2,a1*a3]

r - R 中的错​​误 : nonconformable arguments. 不正确?

c++ - vector 增长时如何强制执行 move 语义?

c++ - 将大小未知的 vector 传递给函数

c++ - 试图将字符串添加到 vector

python - 在 Windows 下使用 NumPy 数组对图像进行快速傅里叶变换期间的内存错误

python - 将 rec.array 转换为数据帧

numpy - 如何加载 .mat 文件并将其转换为 numpy 2D 数组?

c - 如何用C语言实现矩阵函数

opengl - GL_PROJECTION矩阵或GL_MODELVIEW矩阵上的gluLookAt()最佳用法