我需要一个从方形窗口中的二维数组中选择所有数据的函数,但我想在 Python 中执行此操作。有什么具体的功能吗?
median_x_array = Median_coords_3d_array[:, :, 0] # 提取 x 坐标
窗口大小=3 median_x_neighbors = []
padded_array = np.pad(median_x_array, pad_width = 1, mode = 'wrap')
对于范围内的 i(pagged_array.shape[0] - window_size + 1):
for j in range(padded_array.shape[1] - window_size + 1):
subarray = padded_array[i:i+window_size, j:j+window_size]
flattened_subarray = subarray.flatten()
median_x_neighbors.append(flattened_subarray)
这可以使用 numpy.lib.stride_tricks.sliding_window_view 实现。您可以将窗口视图设置为形状
(3, 3)
并将函数应用于每个切片:
import numpy as np
from numpy.lib.stride_tricks import sliding_window_view # New import
median_x_array = np.random.rand(10, 10) # an example dummy array
window_size = 3
median_x_neighbors = []
padded_array = np.pad(median_x_array, pad_width = 1, mode = 'wrap')
rolling_views = sliding_window_view(padded_array, (window_size), window_size)) # put a sliding view on top of the array
for i in rolling_views[0, :, :]: # access the views one at a time
median_x_neighbors.append(i.flatten())