python - 检查多维numpy数组中两个轴的相等性
问题描述
我得到一个 3 维 shape(n,m,k) numpy 数组。我想将此视为包含向量的二维矩阵,即具有大小为 k 的向量的 nxm 矩阵。我现在想检查两个形状为 (n,m,k) 的数组,第一个数组中的条目 (x,y,:) 是否等于第二个数组中的 (x,y,:)。有没有一种方法可以在不使用循环的情况下在 numpy 中执行此操作?
我曾考虑过以第一轴和第二轴为条件的 A == B 之类的东西。
解决方案
您可以使用条件,并ndarray.all
与axis
:
a = np.arange(27).reshape(3,3,3)
b = np.zeros_like(a)
b[0,1,2] = a[0,1,2]
b[1,2,0] = a[1,2,0]
b[2,1,:] = a[2,1,:] # set to the same 3-vector at n=2, m=1
(a == b).all(axis=2) # check whether all elements of last axis are equal
# array([[False, False, False],
# [False, False, False],
# [False, True, False]])
如您所见,对于n=2
和我们在和m=1
中得到相同的 3 向量。a
b
推荐阅读
- react-native - react-native 加载了一些图像,其他没有
- azure-devops - Ins Azure DevOps 板;专用于一个用户故事的任务
- c# - 如何“翻译”包含转义字符的字符串
- c# - 解析xml(c#)时如何进行操作(avg、cnt等)?
- c# - Automapper 映射自定义值 ForMember
- python - 有没有办法在没有文件对象的情况下关闭 python 中的文件?
- javascript - css切换按钮在第一次单击时不更改类,但在函数完成运行后将其删除
- javascript - 在javascript中修改继承数组而不更改其父数组的最佳方法是什么
- php - HTML 标签显示在邮件中
- python-3.x - 无法从部分初始化的模块“email.utils”导入名称“_has_surrogates”