numpy.arange()
~間隔を指定した数列の生成
引数・戻り値
numpy.arange([start, ]stop, [step, ]dtype = None)
引数 | 型 | 概要 |
start |
int/float |
数列の開始値。省略可(デフォルトは0) |
stop |
int/float |
数列の終了値。省略不可。 |
step |
int/float |
数列の間隔。省略可(デフォルトは1)。 |
dtype |
dtype |
生成される数列のデータ型。指定しない場合は引数の型が適用される。 |
戻り値:開始値start
からstep
ずつ増加し、stop未満の数列のndarray
引数の指定例
必ず以下のように指定する。numpy.arange(stop=5, step=2)
のような指定はできない。
numpy.arange(stop)
- 0以上
stop
未満で増分1の数列を返す。数列の型は引数の型による。 numpy.arange(start, stop)
start
以上stop未満
で増分1の数列を返す。数列の型は引数の型による。numpy.arange(start, stop, step)
- startから始まり、stepずつ増加/減少し、stepの手前までの数列を返す。数列の型は引数の型による。
1 2 3 4 5 6 7 |
print(np.arange(10)) print(np.arange(3, 10)) print(np.arange(3, 10, 2)) # [0 1 2 3 4 5 6 7 8 9] # [3 4 5 6 7 8 9] # [3 5 7 9] |
その他
降順の数列
step
を負の値にして降順の指定も可能。この場合はstart
≥n>end
の範囲となる。
1 2 3 |
print(np.arange(10, 3, -2)) # [10 8 6 4] |
実数列
step
を指定して実数の列も作れる。
1 2 3 |
print(np.arange(0.2, 0.8, 0.2)) # [0.2 0.4 0.6 0.8] |
ただしデフォルトでstart=0(0.0)
、step=1(1.0)
なので以下のような挙動になる。
1 2 3 4 5 6 7 |
print(np.arange(2.2)) print(np.arange(2.3, 6.4)) # [0. 1. 2.] # 0から始まり1.0ずつ増加させて2.2を越えない範囲 # [2.3 3.3 4.3 5.3 6.3] # 2.3から始まり1.0ずつ増加させて6.5を超えない範囲 |
dtypeによる型指定
dtypeで強制的に型を指定可能。
1 2 3 4 5 6 7 |
print(np.arange(5, 10, dtype=float)) print(np.arange(2.3, 6.4, dtype=int)) # [5. 6. 7. 8. 9.] # [2 3 4 5 6] # 先に引数を整数化すると[2 3 4 5]となるがこうなっていない # まず[2.3 3.3 4.3 5.3 6.3]の列を作り、それを整数化しているらしい |
numpy.linspace()
~個数を指定した数列の生成
引数・戻り値
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
引数 | 型 | 概要 |
start |
int/float |
数列の開始値。省略不可。 |
stop |
int/float |
数列の終了値。省略不可。 |
num |
int |
数列の要素数。省略可(デフォルトは50)。 |
endpoint |
bool |
stopを要素に含むかどうかを指定。True で含み、False なら含まない。省略可(デフォルトはTrue でstop を含む)。 |
retstep |
bool |
戻り値として配列に加えて公差を返すかどうかを指定。Trueで配列を第1要素、公差を第2要素とするタプルを返し、Falseなら配列のみを返す。 |
dtype |
dtype |
生成される数列のデータ型。指定しない場合はfloat が適用される。 |
戻り値:start
からstop
までをnum
等分した数列のndarray
引数の指定例
numpy.linspace(start, stop)
start
から始まりstop
で終わる50個の数列を返す。numpy.linspace(start, stop, num)
start
から始まりstop
で終わるnum
個の数列を返す。numpy.linspace(start, stop, num, endpoint=False)
start
から始まりstop
の手前で終わるnum
個の数列を返す。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
print(np.linspace(-2.4, 2.5)) print(np.linspace(-2, 2, 11)) print(np.linspace(-2, 2, 20, endpoint=False)) print(np.linspace(-1, 1, 5, retstep=True)) a, d = np.linspace(-1, 1, 5, retstep=True) print(a) print(d) # [-2.4000000e+00 -2.3000000e+00 -2.2000000e+00 -2.1000000e+00 # -2.0000000e+00 -1.9000000e+00 -1.8000000e+00 -1.7000000e+00 # ..... # 2.0000000e+00 2.1000000e+00 2.2000000e+00 2.3000000e+00 # 2.4000000e+00 2.5000000e+00] [-2. -1.6 -1.2 -0.8 -0.4 0. 0.4 0.8 1.2 1.6 2. ] [-2. -1.6 -1.2 -0.8 -0.4 0. 0.4 0.8 1.2 1.6] # (array([-1. , -0.5, 0. , 0.5, 1. ]), 0.5) # [-1. -0.5 0. 0.5 1. ] # 0.5 |
その他
dtypeによる型指定
dtype=intと指定して、整数列を生成できる。
1 2 3 |
print(np.linspace(-2, 2, 5, dtype=int)) # [-2 -1 0 1 2] |
ただし分割個数を適切に指定しないと、変な結果になる。
1 2 3 4 5 6 |
print(np.linspace(-2, 2, 6, dtype=int)) # [-2 0 0 2] # まずfloatで以下の数列が生成される # [-2. -0.66666667 0.66666667 2. ] # その後にこれらの小数部が切り捨てられて上の結果になる |
retstepを指定した公差の取り出し
retstep=Trueと指定すると、第1要素に数列のndarray、第2要素に公差を持つタプルが返される。
1 2 3 4 5 6 7 8 |
print(np.linspace(-1, 1, 5, retstep=True)) a, d = np.linspace(-1, 1, 5, retstep=True) print(a) print(d) # (array([-1. , -0.5, 0. , 0.5, 1. ]), 0.5) # [-1. -0.5 0. 0.5 1. ] # 0.5 |