2017-09-05 230 views
0

比方說,我有一個數字下面的數組:計算距離

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中這樣做有一個快速而有效的方法嗎?我一直在嘗試,但迄今爲止沒有運氣。

謝謝你的幫助!

+2

'2--3'在'norm(2--3)'中的含義是什麼?你能寫下實際的預期值嗎? – Divakar

回答

1

這將做的工作:

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.meanaxis=0返回每列的平均值。

+0

感謝您的詳細解答!有效! – tattybojangler

+1

不客氣:) –