chainer.functions.
permutate
(x, indices, axis=0,
inv=False)[source]¶
与えられた変数を軸(axis)に添って並べ替える。
この関数は x
を与えられた indices
を用いて並べ替えます。つまり全ての i
について y[i]
= x[indices[i]]
。この結果は y = x.take(indices)
.と同じであることに注意してください。indices
は [0, 1, ..., len(x) - 1]
を並べ替えたものでなければなりません。
inv
が True
の場合、 indices
はその反転として扱われます。つまり y[indices[i]] = x[i]
です。
Parameters: |
|
---|---|
Returns: |
出力値。 |
Return type: |
Example
>>> x = np.arange(6).reshape((3, 2)).astype('f')
>>> x
array([[ 0., 1.],
[ 2., 3.],
[ 4., 5.]], dtype=float32)
>>> indices = np.array([2, 0, 1], 'i')
>>> y = F.permutate(x, indices)
>>> y.data
array([[ 4., 5.],
[ 0., 1.],
[ 2., 3.]], dtype=float32)
>>> y = F.permutate(x, indices, inv=True)
>>> y.data
array([[ 2., 3.],
[ 4., 5.],
[ 0., 1.]], dtype=float32)
>>> indices = np.array([1, 0], 'i')
>>> y = F.permutate(x, indices, axis=1)
>>> y.data
array([[ 1., 0.],
[ 3., 2.],
[ 5., 4.]], dtype=float32)