2012-12-22 7 views
2

행렬, 즉 i 번째 요소 - (i-1) 요소의 차이를 계산하려면 다음을 따르십시오.Numpy : 행렬의 모서리를 계산하십시오.

각 요소의 가로 및 세로 차이를 (쉽게) 계산할 수 있습니까? 전치를 가지고?

inputarr = np.arange(12) 
inputarr.shape = (3,4) 
inputarr+=1 

#shift one position 
newarr = list() 
for x in inputarr: 
    newarr.append(np.hstack((np.array([0]),x[:-1]))) 

z = np.array(newarr)  
print inputarr 
print 'first differences' 
print inputarr-z 

출력

[[ 1 2 3 4] 
[ 5 6 7 8] 
[ 9 10 11 12]] 

first differences 
[[1 1 1 1] 
[5 1 1 1] 
[9 1 1 1]] 

답변

3

체크 아웃 numpy.diff. 문서에서

:

계산 소정 축을 따라 제 n 위해 개별 차이.

가 일차 차가 주어진 축 out[n] = a[n+1] - a[n] 주어진다 고차 차이 DIFF 재귀를 사용하여 계산된다.

예 :

>>> import numpy as np 
>>> a = np.arange(12).reshape((3,4)) 
>>> a 
array([[ 0, 1, 2, 3], 
     [ 4, 5, 6, 7], 
     [ 8, 9, 10, 11]]) 
>>> np.diff(a,axis = 1) # row-wise 
array([[1, 1, 1], 
     [1, 1, 1], 
     [1, 1, 1]]) 
>>> np.diff(a, axis = 0) # column-wise 
array([[4, 4, 4, 4], 
     [4, 4, 4, 4]]) 
관련 문제