3次元配列をforで回したい! -Python
3次元配列を配列で回したい場合ってどうゆう挙動するんだろうね。検証してみた。
import numpy a = numpy.arange(10) #ndim=1 a = numpy.array([a for i in range(10)]) #ndim=2 a = numpy.array([a for i in range(5)]) #ndim=3 for i in a: print(i)
出力
[[0 1 2 3 4 5 6 7 8 9] ... [0 1 2 3 4 5 6 7 8 9]] [[0 1 2 3 4 5 6 7 8 9] ... [0 1 2 3 4 5 6 7 8 9]]
的な感じ。10*10の出力がされているから、for i in aの場合axis=0で回るっぽい。
じゃあこんなコードの場合
for i in a[0]: print(i)
[0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7 8 9]
なるほど。これはaxis=1を軸にして回っているっぽい。
つまり、ネストが深くなるほど、axisはn+1になるらしい。