【发布时间】:2022-01-14 22:02:20
【问题描述】:
我有一个 numpy 坐标数组。我想在 Xmin 和 Xmax 之间以及 Ymin 和 Ymax 之间进行选择。
这是我的代码:
grid = np.random.randint(2, size=81).reshape(9,9)
List_of_coordinates = np.argwhere(grid == 0)
Xmin, Xmax, Ymin, Ymax = 0,3,6,9
List_of_coordinates = List_of_coordinates[List_of_coordinates[:, 1] >= Ymin]
List_of_coordinates = List_of_coordinates[List_of_coordinates[:, 1] < Ymax]
List_of_coordinates = List_of_coordinates[List_of_coordinates[:, 0] >= Xmin]
List_of_coordinates = List_of_coordinates[List_of_coordinates[:, 0] < Xmax]
有没有更快的方法?
【问题讨论】:
-
先切片再加分钟
np.argwhere(grid[Xmin:Xmax, Ymin:Ymax] == 0)+[Xmin,Ymin]?我不知道这是否通常更快。argwhere的计算更少,比较更少,但总和更多。
标签: python numpy optimization sudoku