1. ホーム
  2. python

numpy.unravel_indexの説明

2022-02-13 05:06:53
公式apiの説明は以下の通りです。
numpyです。 解きほぐしインデックス ( インデックス ディムズ オーダー='C' )
フラットインデックスまたはフラットインデックスの配列を、座標配列のタプルに変換します。
<テーブル <カラー パラメータです。 index : array_like
次元 dims の配列の平坦化されたバージョンへのインデックスを要素とする整数配列です。バージョン 1.6.0 より前のバージョンでは、この関数はインデックス値をひとつだけ受け付けました。
dims : intのタプル
インデックスの解凍に使用する配列の形状を指定します。
オーダー : {'C', 'F'}, オプション
インデックスを行メジャー(Cスタイル)または列メジャー(Fortranスタイル)のどちらで見るべきかを決定します。
バージョン1.6.0での新機能です。 を返します。 unraveled_coords : ndarray のタプル。
タプル内の各配列は、インデックスの配列と同じ形状をしています。
こちらもご覧ください
ラヴェルマルチインデックス
使用例
>>>
>>> np . unravel_index([ 22 , <スパン 41 , 37

], ( 7 <スパン ,
6 ))
(配列([3, 6, 6]), 配列([4, 5, 1]))
>>> np . unravel_index([ 31 , 41 , <スパン 13 ], ( 7 <スパン , 6 )、オーダー = <スパン 'F' )
(配列([3, 6, 6]), 配列([4, 5, 1]))
>>>
>>> np . unravel_index( 1621 <スパン , ( 6 , 7 , 8 , 9 ))(3, 1, 4, 1)


(6,7,8)型の配列を考え、100番目の要素のインデックス(x,y,z)は何でしょうか?
>>> プリント np.unravel_index() <スパン 100 <スパン ,( <スパン 6 <スパン , 7 , 8 ))
( 1 , 5 , 4 )

説明
shape=(6,7,8) の行列、つまり3次元の行列があるとき、n番目の要素の添え字は何でしょうか。 行列の各次元の添え字は 0 から始まります。


引数indicesがスカラーの場合、dimension=行列の次元のベクトルが返され、ベクトルの値は実際には行列の対応する添え字となる。例えば、6*7*8*9 の行列の場合、 1621/(7*8*9)=3, (1621-3*7*8*9)/(8*9)=1, (1621-3*7*8*9-1*8*9)/9=4, (1621-3*7*8*9-1*8*9-4*9)=1 となります。つまり、返されるベクトルは array(3,1,4,1) です。

引数indicesがベクトルの場合、対応する添え字はベクトルの中央値から求められる。添え字の数は行列の次元数であり、各添え字はベクトルなので、返されるベクトルの数=行列の次元数です。例えば、7*6 の行列の場合、22 番目の要素は 3*6+4 なので、対応する添え字は (3,4) となり、返される値は array([3]),array([4]) となります。