我有以下的numpy数组:
arr_1 = [[1,2],[3,4],[5,6]] # 3 X 2
arr_2 = [[0.5,0.6],[0.7,0.8],[0.9,1.0],[1.1,1.2],[1.3,1.4]] # 5 X 2
arr_1
明显是个 3 X 2
的数组,而 arr_2
则是一个 5 X 2
的数组。
现在我想要对 arr_2 应用滑动窗口技术(窗口大小为 3),而不使用循环的方式对 arr_1 和 arr_2 进行逐元素相乘。
Example:
Multiplication 1: np.multiply(arr_1,arr_2[:3,:])
Multiplication 2: np.multiply(arr_1,arr_2[1:4,:])
Multiplication 3: np.multiply(arr_1,arr_2[2:5,:])
我希望以某种矩阵乘法形式来实现此操作,以使其比当前的解决方案更快。当前的解决方案形式如下:
for i in (2):
np.multiply(arr_1,arr_2[i:i+3,:])
如果arr_2中的行数很大(数量级达到成千上万),那么这个解决方案并不具有良好的可伸缩性。
非常感谢任何帮助。