首页 > 解决方案 > 在 3D np 数组中搜索 1D np 数组

问题描述

在以下示例中,我尝试在 3D np 数组中搜索 1D np 数组。

import numpy as np


a = np.array([[[1, 2], [3, 4]],
              [[5, 6], [3, 2]],
              [[2, 1], [7, 8]]])

b = np.array([1, 2])

print(np.all(a == b, axis=1))
# print(np.where(np.all(a == b, axis=(1,1))))

我得到的结果如下:

[[False False]
 [False False]
 [False False]]

这意味着我得到了布尔表的正确尺寸,但由于某种原因,结果不是预期的。

先感谢您!

标签: pythonpython-3.xnumpy

解决方案


你需要axis=2,即第三轴:

np.all(a == b, axis=2)

[[ True False]
 [False False]
 [False False]]

或者您可以指定axis=-1最后一个轴:

np.all(a == b, axis=-1)

[[ True False]
 [False False]
 [False False]]

推荐阅读