我如何向量化一个包含条件的嵌套for循环?我试图在一个非常大的数组中得到一个行/列窗口的列表。下面是一个嵌套循环在给定窗口大小的情况下遍历所有行和列的快速过程,但我想知道是否有任何方法可以让它更快。
def get_windows(width, height, win_size):
windows = list()
for i in range(0, width, win_size):
if i + win_size < width:
numCols = win_size
else:
numCols = width - i
for j in range(0, height, win_size):
if j + win_size< height:
numRows = win_size
else:
numRows = height - j
window = [i, j, numCols, numRows]
windows.append(window)
return windows
def sliding_window(arr, windows):
for i in windows:
win_arr = arr[0:3, i[0]:i[0]+i[2], i[1]:i[1]+i[2]]
win_arr = np.transpose(win_arr, [1, 2, 0])
1条答案
按热度按时间4ioopgfo1#
我认为您可以使用对
numpy.array_split
的重复调用来实现您的目标。