NumPyのarange関数を使って小数の連番を作成する方法を、ご紹介しました。
小数の連続した数値の生成に関して、公式サイトarrangeのページではlinspace関数が、以下のようにおすすめされています。
When using a non-integer step, such as 0.1, the results will often not be consistent. It is better to use numpy.linspace for these cases.
このlinspace関数を試して、最初に戸惑ったことを記事にしておきます。
linspaceの第2引数stopは含むの
0.1から0.5まで0.1ずつの連続する5個の小数を生成したい場合、linspace関数では、以下のような指定を行います。
x = np.linspace(0.1, 0.5, 5)
第2引数stopに指定した値を含むのが、linspace関数のデフォルトです。
私は最初、0.1から0.5まで0.1ずつの連続する5個の小数を生成するには、
np.linspace(0.1, 0.6, 5)
と指定すると誤解していたのです。
arangeの第2引数stopは含まない
numpyのarange関数を使って、1から5までの連続する整数を生成する場合、
のように指定します。この仕様は、Python標準のrange関数の仕様に合わせているはずです。いずれも、第2引数stopは含みません。
引数名は同じようにstopですが、linspace関数の場合は含むという仕様を私は誤解していたのです。
引数endpointにFalseでstopの値を含まなくなる
以下のように引数endpointにFalseを指定すれば、第2引数stopの値を含まない形で数値を生成してくれます。
最初は誤解していたものの、一度わかってしまえば、linspace関数の場合にstopに指定した値を含まないほうが、使いやすいと感じます。
最終更新日時:2021-09-13 16:05
Home » Python » NumPyの使い方 » NumPyのlinspaceの第2引数stopは含むのがデフォルト