Pythonで等間隔の数字の列を作る
PythonでNumPyを使って等間隔の数字の列(数列)を作ります。
目次
linspaceメソッドの使い方
import numpy as np
samples, [step] = np.linspace(start, stop, [num], [endpoint], [retstep], [dtype])
変数 |
型 |
内容 |
---|---|---|
start |
scalar |
数列を開始する数値。 |
stop |
scalar |
数列を終了する数値。 |
num |
int |
省略可。既定値は50。戻る数列の数値の数。 |
endpoint |
bool |
省略可。既定値はTrue。数列にstopで指定した値を含めるか。 |
retstep |
bool |
省略可。既定値はFalse。数列のステップ値を返すかどうか。 |
dtype |
dtype |
省略可。既定値はNone。数列の数値の型。 |
samples |
ndarray |
数列。 |
step |
float |
数列のステップ値。 |
linspaceメソッドは、等間隔の数列の行列を作ります。
数列の作成例
いろいろオプションがあるので、試してみましょう。
一番単純な例です。0から10まで、50個の数値を持つ等間隔の数列を作ってみます。
>>> import numpy as np
>>> np.linspace(0,10)
array([ 0. , 0.20408163, 0.40816327, 0.6122449 , 0.81632653,
1.02040816, 1.2244898 , 1.42857143, 1.63265306, 1.83673469,
2.04081633, 2.24489796, 2.44897959, 2.65306122, 2.85714286,
3.06122449, 3.26530612, 3.46938776, 3.67346939, 3.87755102,
4.08163265, 4.28571429, 4.48979592, 4.69387755, 4.89795918,
5.10204082, 5.30612245, 5.51020408, 5.71428571, 5.91836735,
6.12244898, 6.32653061, 6.53061224, 6.73469388, 6.93877551,
7.14285714, 7.34693878, 7.55102041, 7.75510204, 7.95918367,
8.16326531, 8.36734694, 8.57142857, 8.7755102 , 8.97959184,
9.18367347, 9.3877551 , 9.59183673, 9.79591837, 10. ])
ちょっとわかりやすくして、数値の数を10個にしてみます。
>>> import numpy as np
>>> np.linspace(0,10,10)
array([ 0. , 1.11111111, 2.22222222, 3.33333333, 4.44444444,
5.55555556, 6.66666667, 7.77777778, 8.88888889, 10. ])
0と10の両方が数列に入っているので、間隔が10/9になってしまいました。
10を入れないようにします。
>>> import numpy as np
>>> np.linspace(0,10,10,endpoint=False)
array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
終端の10が無くなりました。
では、数値のステップ値も戻すようにしてみましょう。
>>> import numpy as np
>>> sample, step = np.linspace(0,10,10,endpoint=False,retstep=True)
>>> sample
array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
>>> step
1.0
ステップは1ですね。
戻り値の型がfloatになってますので、intで戻すようにしてみましょう。
>>> import numpy as np
>>> sample, step = np.linspace(0,10,10,endpoint=False,retstep=True,dtype=int)
>>> sample
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> type(sample[0])
<class 'numpy.int64'>
>>> step
1.0
>>> type(step)
<class 'numpy.float64'>
数列の方はintになりました。
公開日
広告
Pythonの数値計算カテゴリの投稿
- NumPyで転置行列を取得する
- NumPyの定数
- Pythonで2つの行列の対応する要素の最大値の行列を作る
- Pythonで2次元メッシュを作る
- Pythonで値が一番大きい要素のインデックスを探す
- Pythonで値が一番小さい要素のインデックスを探す
- Pythonで指定した数値以上の最小の整数を計算する
- Pythonで等間隔の数字の列を作る
- Pythonで等間隔の数字の列を作る(arange編)
- Pythonで行列の次元を調べる
- Pythonで行列の積を計算する
- Pythonで零行列を作る
- PythonのNumPyの行列の書き換えを禁止したり許可したりする
- Pythonの行列のサイズを調べる