【python】numpyのスライスとか
いきなりですが、次のコードの出力がわかりますか?
a = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
print(b[0:1, [1, 2]])
わかった方はこの先は読まなくて大丈夫です!(読んでくれたらもちろん嬉しいですが)
わからなかった方はこの続きを読んで理解していきましょう!
答え
先ほどの問題の出力は、
[[2 3]]
です!!
基本的な問題ですが結構悩む人もいると思います。基本に立ち返って考えていきましょう。
まずb[2, 1]だったら出力はわかると思います。行方向のインデックスが2で列方向のインデックスが1の要素が出力されます。
b[0:1, [1, 2]]も同じように考えると、行方向は0:1、列方向は[1, 2]で指定しています。
まず行方向を考えます。0:1は0番目の行から1行分指定します。
この段階で[1, 2, 3]が指定されます。
列方向は[1, 2]です。1列目と2列目を指定します。なので[1, 2, 3]の[2, 3]が指定されて先ほどの出力になります!
これを理解できているか最後に一問解いて見てください。
確認問題
a = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
print(b[0:2, [1, 2]])
答え
わかりましたか?
出力は、
[[2 3]
[5 6]]
です!
こんな感じで短めの記事もどんどん書いていこうと思うので、気になるものは読んでみて頂けると嬉しいです!