前回書いた 「NumPyでデータ作成を始める」 の続きのようなもの
データ作成方法にフォーカスして、色々な多次元配列の作成方法を見ていく
要素が全て同じの多次元配列
-
要素が全て0の1次元配列
zeros
で0が並ぶ、ones
で1が並ぶ、なるほど
でもこれ13とかなったらどうするんでしょう? さーてぃーんず はないでしょ
ちゃんとありました
full
を使えばで引数で個数と値が指定できる!!
ちなみに twos 以上はエラーになりましたw なんやねんw -
おまけ: (100, 100, 100) の3次元配列
もう作り方はわかる
np.full((100, 100, 100))
さてこれをpythonのfor文で作った場合
[[[0 for _ in range(100)] for _ in range(100)] for _ in range(100)]
わけわからんけど、こんな感じになる
これらの実行速度、NumPyの方が十数倍速いみたい
すげー
多次元配列の値の置き換え
zeros_like
、ones_like
、full_like
を使えば、多次元配列の要素の値を全て指定した値に置き換えることができる
ただしshapeが同じ場合に限る!
np.full_like((2, 3), 99, dtype=int)
で型指定もできちゃう
実際に使う場面に遭遇してみたい処理ではある
データ作成の主なメソッド
arange
pythonの range のnumpyバージョン
rangeと同じなので、スタートとストップ、ステップを指定して使える
linspace
スタートとストップと要素の個数を指定して、配列を生成
指定した個数が入りきるようにちゃんと割って入ってくれる
これ、数学Ⅱ(?)でやった等差数列やね!
eye
👀
eye(n)
で 対角線上の値のみ1のn次元配列を作成(単位行列)
いや、むずいむずい
非正方行列じゃなくてもOKなんだったさ(要は雰囲気が正方形じゃないってことでしょう!)
diag
対角線上の値のみ指定し、他が0の配列
行数 = 引数の要素数
つまり正方形になるってことやん?
感想
なんとなるデータ作るの楽で速いのは感じてきている
いつか感動爆発するんかな〜