我想从各种大小的数组中创建一个具有特定大小的子集数组,我想从中间获取子集数组。
我考虑过对每个数组进行迭代并通过索引从中间点进行计算,但是它处于迭代过程中,我想看看是否有可能通过一些巧妙的numpy切片来实现,从而将过程向量化。
例如,对于以下数组,其子数组size = 5:
ar1 = np.array([1,5,6,7,4,3,6,7])
ar2 = np.array([5,6,23,4,5,6,78,3,5])
ar3 = np.array([2,3,4,5,7,44,4,2,2,1,1,2,3])
ar4 = np.array([2,3,4,5,7])
我想获得以下子数组:
ar1 = np.array([5,6,7,4,3])
ar2 = np.array([23,4,5,6,78])
ar3 = np.array([7,44,4,2,2])
ar4 = np.array([2,3,4,5,7])
例如,我想避免使用这样的代码:
middle = len(ar1) // 2
window = 5
ar1[middle - (window//2) : middle + (window//2) + 1]
谢谢!