1次元配列xを下のような3次元の配列yに変換したいです。
xは0~9215が格納されている配列です。
この配列xを8ずつ抜き出して, 256×6×6の配列yの深さ方向に格納していきたいです。
たとえば, x[0:8]をy[0:8,0,0]に格納, x[9:16]をy[0:8,0,1]格納して,y[0:8,6,6]まで
格納したら, y[8:16,0,0]から y[8:16,6,6]まで入れていき, 保存したいです。
for文でプログラムは作成しましたが, 繰り返しの計算に時間がかかってしまい。
numpyのreshapeなどで高速化することはできるかどうか教えていただきたく質問しました。
for文でのプログラムは下記になります。
python
1import numpy as np 2 3x = np.arange(1152*16) 4 5print(x) 6 7y = np.zeros((256,6,6)) 8for k in range(32): 9 for i in range(6): 10 for j in range(6): 11 y[8*k:8*(k+1),i,j] = x[k*8*36+(i+j)*8:k*8*36+(i+j+1)*8] 12 13print(y)
回答1件
あなたの回答
tips
プレビュー