san*_*ion 4 python arrays search 2d numpy
我想从二维数组 a 中找到多个匹配行
a = np.array([[2, 1],
[3, 3],
[4, 6],
[4, 8],
[4, 7],
[4, 3]])
Run Code Online (Sandbox Code Playgroud)
我必须搜索以下条目
b = np.array([[4,6],
[4,7]])
Run Code Online (Sandbox Code Playgroud)
我知道我可以循环 b 并执行以下操作
for i in range(len(b)) :
print(np.where(np.all(a==b[i],axis=1))[0])
Run Code Online (Sandbox Code Playgroud)
我开始关注
[2]
[4]
Run Code Online (Sandbox Code Playgroud)
我可以不使用任何循环直接获取 [[2],[4]] 吗?
如果您想要索引,您通常会使用和arg_x等函数。如果您能弄清楚如何传递正确的布尔值列表,这里将为您提供索引。您可以使用np.isin()来做到这一点:argmaxargwherenp.argwhere
a = np.array([[2, 1],
[3, 3],
[4, 6],
[4, 8],
[4, 7],
[4, 3]])
b = np.array([[4,6], [4,7]])
np.argwhere(np.isin(a, b).all(axis=1))
Run Code Online (Sandbox Code Playgroud)
返回:
array([[2],
[4]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1585 次 |
| 最近记录: |