【发布时间】:2021-06-03 14:27:32
【问题描述】:
我有一个 2D numpy 数组,比如 A 相对于第 0 列排序。例如
| Col.0 | Col.1 | Col.2 |
|---|---|---|
| 10 | 2.45 | 3.25 |
| 11 | 2.95 | 4 |
| 12 | 3.45 | 4.25 |
| 15 | 3.95 | 5 |
| 18 | 4.45 | 5.25 |
| 21 | 4.95 | 6 |
| 23 | 5.45 | 6.25 |
| 27 | 5.95 | 7 |
| 29 | 6.45 | 7.25 |
| 32 | 6.95 | 8 |
| 35 | 7.45 | 8.25 |
每行中的条目是唯一的,即第 0 列是 xy 平面中坐标的标识号,第 1 列和第 2 列是这些点的 x 和 y 坐标。 我有另一个数组 B(行可以包含重复数据)。第 0 列和第 1 列存储 x 和 y 坐标。
| Col.0 | Col.1 |
|---|---|
| 2.45 | 3.25 |
| 4.45 | 5.25 |
| 6.45 | 7.25 |
| 2.45 | 3.25 |
我的目标是在不使用 for 循环的情况下找到数组 A 中与数组 B 中的数据对应的行索引号。所以,在这种情况下,我的输出应该是[0,4,8,0]。
现在,我知道使用 numpy searchsorted 查找多个数据可以一次性完成。但是,它可以用来与 A 的单列而不是多列进行比较。有没有办法做到这一点?
【问题讨论】:
-
searchsorted无济于事,因为该数组未按您实际搜索的列排序。 -
请避免为数据框发布表格。发布实际数据(或者更好的数据框代码)将帮助我们运行您的示例数据。
标签: python arrays pandas numpy