2

行列の差、つまり i 番目の要素 - (i-1) 要素を計算するには、次のようにします。

各要素の水平方向と垂直方向の差を (簡単に) 計算するにはどうすればよいですか? トランスポーズで?

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]]
4

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]])
于 2012-12-22T15:57:20.013 に答える