给定两个包含x和y坐标的2D numpy数组,如何在另一个具有相同尺寸的数组中找到相同的对?
例如,我有这些数组:
array([[ 2, 1, 3, 4],
[ 4, 3, 5, 10]])
Run Code Online (Sandbox Code Playgroud)
和
array([[ 0, 2, 3, 4],
[ 3, 4, 11, 10]])
Run Code Online (Sandbox Code Playgroud)
我希望找到这些对(2, 4)并且(4, 10)将被检测为存在于两个阵列中.
首先十分感谢!
试试这个:
>>> a2 = [[ 0, 2, 3, 4],
[ 3, 4, 11, 10]]
>>> a1 = [[ 2, 1, 3, 4],
[ 4, 3, 5, 10]]
>>> set(zip(*a1)) & set(zip(*a2))
{(4, 10), (2, 4)}
Run Code Online (Sandbox Code Playgroud)
您可以通过array.tolist()将数组转换为列表
对于任何2D阵列,例如,第一行表示X轴,第二行表示Y轴.因此zip(*a1)将导致所有坐标对.然后set()构造函数将过滤掉所有重复记录.最后,两个数组之间的&操作将计算出两个数组中的所有坐标对.
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
1105 次 |
| 最近记录: |