Ast*_*rid 5 python numpy scipy difference
寻找关于如何编写函数(或者可以推荐已经存在的函数)的提示,该函数计算数组中所有条目之间的差异,即对数组diff()中的所有条目组合的实现,而不仅仅是连续对.
这是我想要的一个例子:
# example array
a = [3, 2, 5, 1]
Run Code Online (Sandbox Code Playgroud)
现在我们想要应用一个函数,它将返回所有条目组合之间的差异.现在假设这length(a) == 4意味着组合的总数是,对于N = 4; N*(N-1)*0.5 = 6(如果a的长度为5,则组合的总数将为10,依此类推).所以函数应该为vector返回以下内容a:
result = some_function(a)
print result
array([-1, 2, -2, 3, -1, -4])
Run Code Online (Sandbox Code Playgroud)
因此'函数'将类似于pdist但不是计算欧几里德距离,它应该简单地计算沿一个轴的笛卡尔坐标之间的差异,例如,如果我们假设条目a是坐标,则计算z轴.可以注意到,我需要每个差异的符号来理解每个点所在的轴的哪一侧.
谢谢.
像这样的东西吗?
>>> import itertools as it
>>> a = [3, 2, 5, 1]
>>> [y - x for x, y in it.combinations(a, 2)]
[-1, 2, -2, 3, -1, -4]
Run Code Online (Sandbox Code Playgroud)