假设我有以下数列:
array([[-3 , 3],
[ 2, -1],
[-4, -4],
[-4, -4],
[ 0, 3],
[-3, -2],
[-4, -2]])然后,我要计算列中每一对连续数字之间距离的范数,即
array([[norm(2--3), norm(-1-3)],
[norm(-4-2), norm(-4--1)],
[norm(-4--4), norm(-4--4)],
[norm(0--4), norm(3--4)],
[norm(-3-0), norm(-2-3)],
[norm(-4--3)-3, norm(-2--2)])然后,我想取每一栏的平均数。
在Python中有一种快速高效的方法吗?我一直在努力,但到目前为止没有运气。
谢谢你的帮助!
发布于 2017-09-05 15:40:44
这将完成以下工作:
np.mean(np.absolute(a[1:]-a[:-1]),0)这会返回
array([ 3.16666667, 3.16666667])解释:
首先,np.absolute(a[1:]-a[:-1])返回
array([[5, 4],
[6, 3],
[0, 0],
[4, 7],
[3, 5],
[1, 0]])它是差值绝对值的数组(我假设一个数字的范数是指绝对值)。然后将np.mean与axis=0一起应用,返回每个列的平均值。
https://stackoverflow.com/questions/46058710
复制相似问题