python
1imger = [] 2 3for i in range(40): 4 for j in range(36): 5 if (img[i][j] == 0 and img[i][j+1] == 0 and img[i][j+2] == 0 and img[i][j+3] == 1 and img[i][j+4] == 1 and img[i][j+5] == 1): 6 print('黒黒黒白白白の右端の黒の部分、行目、列目の順。', i, j+2) 7 np.append(imger[i], j+2)
imgerという一次元配列を作って、その一次元配列のi番目の二次元配列目に、
j+2(jの値はfor文で回すので、複数)を格納していく、といった事を以上のコードのようにしたいのですが、できません。
本質的な問いとしては、一次元配列に対しappendを使う事で、二次元配列化する、という事ができないようで、その方法が知りたいのですが・・・。
numpyの場合、np.zerosとか使うのが一般的なんでしょうか・・・?初めに全要素0のを作って、必要に応じ1を入力していく、みたいな、以下コード。
python
1imger = np.zeros((40,40)) 2 3for i in range(40): 4 for j in range(36): 5 if (img[i][j] == 0 and img[i][j+1] == 0 and img[i][j+2] == 0 and img[i][j+3] == 1 and img[i][j+4] == 1 and img[i][j+5] == 1): 6 print('黒黒黒白白白の右端の黒の部分、行目、列目の順。', i, j+2) 7 imger[i][j] = 1
> 一次元配列のi番目の二次元配列目に
どういうことでしょう?最も簡単な例で示してもらえないでしょうか?
別の方法も考えてるところなんですが、この質問の意図は、
まず配列a[0],a[1],a[2],a[3],a[4],a[5],...を生成して、
このそれぞれ、たとえば
a[0]に、a[0][0],a[0][1],a[0][2],a[0][3],...
と、二次元配列にして二次元目に数値を入力していく方法はないかな、ということです。
質問の意図はやはり分かりませんが下記の様な処理なら出来ます。
a = []
a.append([])
a[0].append(100)
print(a) #[[100]]
あなたの回答
tips
プレビュー