我有3个单元阵列,每个单元阵列有不同大小的阵列。如何对每个可能的单元阵列组合执行减号函数?
例如:
import numpy as np
a=np.array([[np.array([[2,2,1,2]]),np.array([[1,3]])]])
b=np.array([[np.array([[4,2,1]])]])
c=np.array([[np.array([[1,2]]),np.array([[4,3]])]])
这里可能的组合是a-b、a-c和b-c。
假设a-b:
a=2,2,1,2 and 1,3
b=4,2,1
由于数组大小不同,所需的结果会随着窗口的移动而变化:
(2,2,1)-(4,2,1) ----> -2,0,0
(2,1,2)-(4,2,1) ----> -2,-1,1
(1,3) -(4,2) ----> -3,1,1
(1,3) -(2,1) ----> 4,-1,2
我想知道如何使用python创建移动窗口,允许我减去我的单元格数组。你知道吗
您可以使用toolz library中的函数^{} 来执行移位窗口:
我认为这对函数满足您的要求。第一个可能需要一些调整,以获得正确的差异配对。你知道吗
制作(印刷精美):
把我的答案和你的相比,我想知道,你是不是用0填充你较短的数组,结果总是3个元素长?你知道吗
将
a
更改为a=[np.array([2,2,1,2]),np.array([0,1,3]),np.array([1,3,0])]
产生:
我想你可以用这个内环做些更奇特的事:
但为什么呢?首要任务是弄清楚问题的规格。速度可以等。除了图像包中的滑动窗口代码外,
np.lib.stride_tricks.as_strided
中还有一个整洁的striding
技巧。但我怀疑这是否能节省时间,尤其是在这样的小例子中。你知道吗相关问题 更多 >
编程相关推荐