見出し画像

【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]]

です!

こんな感じで短めの記事もどんどん書いていこうと思うので、気になるものは読んでみて頂けると嬉しいです!

いいなと思ったら応援しよう!