Home » Python » NumPyの使い方 » NumPyのlinspaceの第2引数stopは含むのがデフォルト

NumPyのlinspaceの第2引数stopは含むのがデフォルト

動作検証バージョン:64bit Windows 10 Pro + Python 3.8.3 + NumPy 1.19.1

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関数では、以下のような指定を行います。

import numpy as np
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までの連続する整数を生成する場合、

x = np.arange(1, 6)

のように指定します。この仕様は、Python標準のrange関数の仕様に合わせているはずです。いずれも、第2引数stopは含みません。

引数名は同じようにstopですが、linspace関数の場合は含むという仕様を私は誤解していたのです。

引数endpointにFalseでstopの値を含まなくなる

以下のように引数endpointにFalseを指定すれば、第2引数stopの値を含まない形で数値を生成してくれます。

x = np.linspace(0.1, 0.6, 5, endpoint=False)

最初は誤解していたものの、一度わかってしまえば、linspace関数の場合にstopに指定した値を含まないほうが、使いやすいと感じます。

最終更新日時:2021-09-13 16:05

[スポンサードリンク]

Home » Python » NumPyの使い方 » NumPyのlinspaceの第2引数stopは含むのがデフォルト

Copyright © インストラクターのネタ帳 All Rights Reserved.

.