前提・実現したいこと
3次元配列の並び替えの方法をご教授願いたいです.
上図は,私が行いたいことのイメージ図になります.左の図が現状の配列の状態です.
最小四角領域の数字は,変換前後の配列の対応をわかりやすくするためです.
この最小四角領域に3数値(RGBのようなイメージ)が1次元配列として入っており,
グレーで塗られた領域が一つの2次元配列の範囲になっています.
この2次元配列が6行並ぶことで,3次元配列をなしています.
この配列を右図のように変更したいと考えています.
一次元配列の要素の組み合わせは変更せず,一つの2次元配列の範囲を33にし,
次は,右隣,その次は左下の33の範囲というように並べ替えたいと考えています.
下のソースコードでは,まず無理矢理,左図に該当する3次元配列を
作成しています.その後の処理として,
右図に該当するように変形する方法をお教えいただいきたいです.
該当のソースコード
Python
1import numpy as np 2 3A = (np.linspace(0, 35, 36)).reshape(6, 6) 4B = (np.linspace(0, 3.5, 36)).reshape(6, 6) 5C = (np.zeros(36)).reshape(6, 6) 6 7# 左図の3次元配列作成 8FeatureValue = np.stack([A,B,C], axis=2) 9print(FeatureValue.shape) 10#(6, 6, 3) 11 12#変更後の3次元配列をresultとすると,その形は(4, 9, 3)で 13#result[0, 0, 0]はFeatureValue[0, 0, 0] 14#result[1, 0, 0]はFeatureValue[0, 3, 0] 15#result[0, 1, 0]はFeatureValue[0, 1, 0] 16#result[0, 0, 1]はFeatureValue[0, 0, 1]に該当します. 17
回答1件
あなたの回答
tips
プレビュー