python numpyを使って配列を指定した範囲と分割する数で作成する

python numpyを使って配列を指定した範囲と分割する数で作成する

pythonで、ライブラリnumpyのlinspaceを使用して、配列を指定した範囲と分割する数で作成するサンプルコードを記述してます。pythonのバージョンは3.8.5を使用してます。

環境

  • OS windows10 pro 64bit
  • python 3.8.5

numpyインストール

numpyをインストールされていない方は、pipでインストールしておきます。

pip install numpy

# Successfully installed numpy-1.19.4

linspace使い方

linspaceを使用すると、配列を指定した範囲と分割する数を指定して作成することが可能です。

import numpy as np

# 1以上 10以下を5分割して配列を作成
arr = np.linspace(1, 10, 5, dtype=int)

print(arr)
# [ 1  3  5  7 10]

以下は、linspaceを使用して配列を作成するサンプルコードとなります。

import numpy as np

# 1以上 100以下を5分割して配列を作成
arr = np.linspace(1, 100, 5, dtype=int)

print(arr)
# [  1  25  50  75 100]

# 100以下 1以上を5分割して配列を作成
arr = np.linspace(100, 1, 5, dtype=int)

print(arr)
# [100  75  50  25   1]

要素数が指定できるので、多次元配列化しやすいという特徴があります。

import numpy as np

# 1以上 100以下を12分割して配列を作成
arr = np.linspace(1, 100, 12, dtype=int)

print(arr.reshape(6, 2))
# [[  1  10]
#  [ 19  28]
#  [ 37  46]
#  [ 55  64]
#  [ 73  82]
#  [ 91 100]]

print(arr.reshape(3, 4))
# [[  1  10  19  28]
#  [ 37  46  55  64]
#  [ 73  82  91 100]]

ステップ数を指定した場合は、以下

import numpy as np

# 2ステップずつ
arr = np.arange(1, 11, 2)

print(arr)
# [1 3 5 7 9]

# 少数も可能です
arr = np.arange(0.1, 1.0, 0.1)

print(arr)
# [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]

reshapeを使用すれば、多次元配列も作成できます。

import numpy as np

arr = np.arange(1, 31).reshape(3, 10)

print(arr)
# [[ 1  2  3  4  5  6  7  8  9 10]
#  [11 12 13 14 15 16 17 18 19 20]
#  [21 22 23 24 25 26 27 28 29 30]]