Quantcast
Channel: 配列タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 757

numpy感動ものがたり(配列の中に配列を)

$
0
0
はじめに 「numpyでそんなことができたのか。。。」 ある日バイト中に社員の方からコードを見てもらってるときに教えてもらったことが、僕の中であまりにも感動してしまったので、思わず記事にしてしまいました。 研究でしかpythonを使わず、numpyもそんなに使ってないとはいえ、少しは使えるようになってるかなと思ってた矢先の出来事でした。 python playerの人は知ってる方も多いかもしれませんが、興味本位で見てくだされば幸いです。 np.zeros np.zerosとかnp.onesとかnp.emptyで初期化した配列を作れるのは、周知の事実ですがサイトとかみると 1次元配列・2次元配列でしか紹介されてないですよね。 こんな感じです。↓ import numpy as np a = np.ones(5) #要素が5個の一次元配列 b = np.ones((4, 5)) #4×5の2次元配列 それでは、配列の中に配列を入れる場合にはどのように初期化するのでしょうか? 例えば、2次元配列の要素に2次元の要素を入れたいときとかです。(この場合は次元的には3次元になります。) こんな感じの配列です。↓ [[[1,1], [2,2]], [[3,3], [4,4]]] では、解法と行きましょう。(出力結果が見やすいように、小さい配列にしてます) array = np.zeros((2, 2, 4, 4), order="C") 出力結果(この場合には次元は4次元になります。) array([[[[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]], [[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]]], [[[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]], [[0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.], [0., 0., 0., 0.]]]]) 無事2×2の配列の要素に4×4の配列を定義することができました! ちなみに、np.zerosよりnp.emptyの方が処理速度は早いです。 処理速度参考サイト(NumPyのemptyで空(長さ0)の配列を作る) 完 終わりに 今回はnumpyの感動した出来事をまとめてみました。 「numpy...貴様そんなことができたのか!」 と僕の知識のなさをnumpyのせいにして終わりにしたいと思います。 誰かのお役に立てれば幸いです。

Viewing all articles
Browse latest Browse all 757

Trending Articles