NumPyのarangeとlinspaceで等間隔の値を生成する

この記事は、for文などで使う等間隔の数値を生み出す方法を説明します。

numpy.arangeは間隔指定、numpy.linspaceは要素数指定で等間隔の数値を生成します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
for i in np.arange(start=0, stop=6, step=2):
print(i)
# 0
# 2
# 4
# arangeは間隔指定。
for i in np.linspace(start=0, stop=6, num=2):
print(i)
# 0.0
# 6.0
# linspaceは要素数指定。
for i in np.arange(start=0, stop=6, step=2): print(i) # 0 # 2 # 4 # arangeは間隔指定。 for i in np.linspace(start=0, stop=6, num=2): print(i) # 0.0 # 6.0 # linspaceは要素数指定。
for i in np.arange(start=0, stop=6, step=2):
    print(i)

# 0
# 2
# 4
# arangeは間隔指定。

for i in np.linspace(start=0, stop=6, num=2):
    print(i)

# 0.0
# 6.0
# linspaceは要素数指定。

組み込み関数のrange関数はこちらの記事をご覧ください。

Pythonのrange関数で等間隔の値を生成する Pythonのrange関数で等間隔の値を生成する

numpy.arange

arangeの基本的な使い方です。
間隔指定のキーワードはstepです。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
a = np.arange(start=1, stop=6, step=2)
print(a)
print(type(a))
# [1 3 5]
# <class 'numpy.ndarray'>
# 戻り値はndarray型。
a = np.arange(1, 6, 2)
print(a)
# [1 3 5]
# キーワード引数のキーワードは削除可能。
a = np.arange(start=1.2, stop=2.2, step=0.3)
print(a)
# [1.2 1.5 1.8 2.1]
# 少数も可能。
a = np.arange(start=1, stop=6, step=2) print(a) print(type(a)) # [1 3 5] # <class 'numpy.ndarray'> # 戻り値はndarray型。 a = np.arange(1, 6, 2) print(a) # [1 3 5] # キーワード引数のキーワードは削除可能。 a = np.arange(start=1.2, stop=2.2, step=0.3) print(a) # [1.2 1.5 1.8 2.1] # 少数も可能。
a = np.arange(start=1, stop=6, step=2)
print(a)
print(type(a))

# [1 3 5]
# <class 'numpy.ndarray'>
# 戻り値はndarray型。

a = np.arange(1, 6, 2)
print(a)

# [1 3 5]
# キーワード引数のキーワードは削除可能。

a = np.arange(start=1.2, stop=2.2, step=0.3)
print(a)

# [1.2 1.5 1.8 2.1]
# 少数も可能。

マイナス値を設定できます。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
a = np.arange(start=10, stop=0, step=-2)
print(a)
# [10 8 6 4 2]
a = np.arange(start=-2, stop=-10, step=-2)
print(a)
# [-2 -4 -6 -8]
a = np.arange(start=1, stop=0, step=-0.2)
print(a)
# [1. 0.8 0.6 0.4 0.2]
a = np.arange(start=10, stop=0, step=-2) print(a) # [10 8 6 4 2] a = np.arange(start=-2, stop=-10, step=-2) print(a) # [-2 -4 -6 -8] a = np.arange(start=1, stop=0, step=-0.2) print(a) # [1. 0.8 0.6 0.4 0.2]
a = np.arange(start=10, stop=0, step=-2)
print(a)

# [10  8  6  4  2]

a = np.arange(start=-2, stop=-10, step=-2)
print(a)

# [-2 -4 -6 -8]

a = np.arange(start=1, stop=0, step=-0.2)
print(a)

# [1.  0.8 0.6 0.4 0.2]

引数stopは、出力される等間隔の数値の区間に含まれません。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
a = np.arange(0, 6, 2)
print(a)
# [0 2 4]
# stopの値は区間に含まれない。
a = np.arange(0, 6+1, 2)
print(a)
# [0 2 4 6]
# stopの値を含みたい場合は、stopにstep以下の値を加算する。
a = np.arange(0, 6, 2) print(a) # [0 2 4] # stopの値は区間に含まれない。 a = np.arange(0, 6+1, 2) print(a) # [0 2 4 6] # stopの値を含みたい場合は、stopにstep以下の値を加算する。
a = np.arange(0, 6, 2)
print(a)

# [0 2 4]
# stopの値は区間に含まれない。

a = np.arange(0, 6+1, 2)
print(a)

# [0 2 4 6]
# stopの値を含みたい場合は、stopにstep以下の値を加算する。

必須引数はstopのみです。
引数ひとつの場合はstopの設定と認識されます。

引数を省略してコードを書きたい方は、引数の位置を認識すれば期待通り書けます。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
a = np.arange(3)
print(a)
# [0 1 2]
# 引数はstopのみが必須で、デフォルトはstartは0、stepは1。
# 引数ひとつだとstart=0 stop=3 step=1となる。
a = np.arange(3, 6)
print(a)
# [3 4 5]
# 引数2つだと、位置引数でstart=3 stop=6 step=1となる。
a = np.arange(3) print(a) # [0 1 2] # 引数はstopのみが必須で、デフォルトはstartは0、stepは1。 # 引数ひとつだとstart=0 stop=3 step=1となる。 a = np.arange(3, 6) print(a) # [3 4 5] # 引数2つだと、位置引数でstart=3 stop=6 step=1となる。
a = np.arange(3)
print(a)

# [0 1 2]
# 引数はstopのみが必須で、デフォルトはstartは0、stepは1。
# 引数ひとつだとstart=0 stop=3 step=1となる。

a = np.arange(3, 6)
print(a)

# [3 4 5]
# 引数2つだと、位置引数でstart=3 stop=6 step=1となる。

numpy.arangeの仕様書です。

numpy.linspace

linspaceの基本的な使い方です。
要素数指定のキーワードはnumです。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
l = np.linspace(start=0, stop=4, num=3)
print(l)
print(type(l))
# [0. 2. 4.]
# <class 'numpy.ndarray'>
# 戻り値はndarray型。
l = np.linspace(0, 4, 3)
print(l)
# [0. 2. 4.]
# キーワード引数のキーワードは削除可能。
l = np.linspace(start=0, stop=1.5, num=3)
print(l)
# [0. 0.75 1.5 ]
# numはint型。startとstopは少数が可能。
l = np.linspace(start=0, stop=4, num=3) print(l) print(type(l)) # [0. 2. 4.] # <class 'numpy.ndarray'> # 戻り値はndarray型。 l = np.linspace(0, 4, 3) print(l) # [0. 2. 4.] # キーワード引数のキーワードは削除可能。 l = np.linspace(start=0, stop=1.5, num=3) print(l) # [0. 0.75 1.5 ] # numはint型。startとstopは少数が可能。
l = np.linspace(start=0, stop=4, num=3)
print(l)
print(type(l))

# [0. 2. 4.]
# <class 'numpy.ndarray'>
# 戻り値はndarray型。

l = np.linspace(0, 4, 3)
print(l)

# [0. 2. 4.]
# キーワード引数のキーワードは削除可能。

l = np.linspace(start=0, stop=1.5, num=3)
print(l)

# [0.   0.75 1.5 ]
# numはint型。startとstopは少数が可能。

引数stopを出力される等間隔の数値の区間に含むか含まないかを決定するのは、引数endpointです。
endpointのデフォルトはTrueで、stopの値は出力される等間隔の数値の区間に含まれます。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
l = np.linspace(0, 4, num=3, endpoint=False)
print(l)
# [0. 1.33333333 2.66666667]
# stopを区間に含むかは、endpointで指定する。
# endpointのデフォルトはTrue。
l = np.linspace(0, 4, num=3, endpoint=True)
print(l)
# [0. 2. 4.]
l = np.linspace(0, 4, num=3, endpoint=False) print(l) # [0. 1.33333333 2.66666667] # stopを区間に含むかは、endpointで指定する。 # endpointのデフォルトはTrue。 l = np.linspace(0, 4, num=3, endpoint=True) print(l) # [0. 2. 4.]
l = np.linspace(0, 4, num=3, endpoint=False)
print(l)

# [0.         1.33333333 2.66666667]
# stopを区間に含むかは、endpointで指定する。
# endpointのデフォルトはTrue。

l = np.linspace(0, 4, num=3, endpoint=True)
print(l)

# [0. 2. 4.]

あと、linespaceではなく、linspaceです。スペルミスにご注意ください。

numpy.linspaceの仕様書です。