▶ ndarrayの基本について初めから読みたい場合は以下の記事をどうぞ
はじめに
今回は関数を使ってndarrayを作る方法を基本から解説していきます。これまではnp.array()にリストを入れる方法でndarrayを作ってきましたが、他にも便利な方法があります。今回はこれを整理していくことにしましょう。
関数でndarrayを作る
np.arange
指定した区間を等間隔で区切った値を返すのがnp.arange()です。Pythonのrange関数のイメージです。返り値がndarrayとなる点が異なります。
startからstopまでの等間隔の値を持つ配列を作ります。stepで間隔を指定することができる。指定しない場合のdefault値は1となります。試してみましょう。
import numpy as np
np.arange(1,100)
stepを省略した場合はdefaultで1となります。次にstepを指定してみましょう。
np.arange(1,100,2)
1から100までstep2で取得なので1,3,5、・・・で99まで取得できました。startとstepを省略することもできます。
np.arange(100)
これはnp.arange(1,100)と一緒ですね。
setには負の値を指定することができます。
np.arange(100,1,-10)
stepが負の値の時にはstartの値がstopの値よりも大きくする必要があります。100から1までstep-10なので100,90,…10が取得できます。
np.linspace
指定した区間を等間隔で区切った値を返す関数としてnp.linspace()もあります。np.arange()と異なり要素数を指定します。
やってみましょう。
np.linspace(1,50)
1から50以下の数字を50個取り出しています。取り出す個数numはdefaultでは50となります。numを指定してみましょう。
np.linspace(0,50,6)
0から50まで等間隔に6つの数字を取り出します。0,10,20,30,40,50が取り出されていますね。
np.logspace
np.linspace()のログバージョンがnp.logspace()となります。
対数スケールで等間隔の数値を返します。対数の底はdefaultでは10です。少しわかりにくいですが、start~stopをlinspaceのやり方で等間隔にnum個抽出して、$base^{start},…base^{stop}$を抽出します。やってみましょう。
np.logspace(0,2,num=3)
startが0, stopが2でnumが3です。linspaceの考え方で区切ると0,1,2が返ってきます。logspaceの場合はこれを底の乗数とするので、いまデフォルトで底は10なので$10^{0},10^{1},10^{2}$つまり、$1,10,100$が返ってくる、というわけです。
まとめ
今回は関数を使ってndarrayを作る方法を扱いました。
コメント