Pythonでrange関数を使った整数の範囲繰り返し処理はよく知られていますが、ここではあまり馴染みのない小数点刻みでの繰り返し処理について解説していきます。
ポイントとしては、標準のrange関数では実現できない小数点刻みの処理を、numpyのlinspace関数を使用することで解決する方法です。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名を少々変わった名称にしております。そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
Pythonのrangeで少数刻みで処理する方法、linspace、3から11まで0.5刻みで処理
それではまず、Pythonのrangeで少数刻みで処理する方法、linspace、3から11まで0.5刻みで処理について解説していきます。
Pythonのrange関数は基本的に整数の範囲での繰り返しに使用されますが、小数点を含む範囲での繰り返しには対応していません(少数だと末端の数値がずれることがあるため)。
そこで、numpyのlinspace関数を使用します。linspaceは、指定した範囲内で等間隔の数列を生成する関数です。
jupyter notebookなどの各開発環境を開いて、以下コードをコピペしましょう。
import numpy as np # numpyライブラリをインポート
# 3から11まで0.5刻みで処理する
hajimari = 3 # 開始点
owari = 11 # 終了点
kizami = 0.5 # 刻み幅
# linspace関数を使用して数列を生成
# endpoint=Trueでowariを含む
shosuKizamiList = np.linspace(hajimari, owari, int((owari - hajimari) / kizami) + 1, endpoint=True)
# 生成した数列を出力
for suuchi in shosuKizamiList:
print(suuchi)
このコードでは、まずnumpyライブラリをインポートしています。
その後、開始点、終了点、刻み幅を設定し、numpyのlinspace関数を使用して、3から11まで0.5刻みの数列を生成しています。
この方法を使うことで、Pythonのrange関数では実現できない小数点刻みの繰り返し処理が可能になります。
Pythonのrangeで少数刻みで処理する方法、linspace、13から4まで0.4刻みで減らす処理
続いては、Pythonのrangeで少数刻みで処理する方法、linspace、13から4まで0.4刻みで減らす処理について解説していきます。
前述の方法と同様に、numpyのlinspace関数を用いていますが、ここでは数列が減少するケースを見ていきます。
jupyter notebookなどの各開発環境を開いて、以下コードをコピペしましょう。
import numpy as np # numpyライブラリを再度インポート
# 13から4まで0.4刻みで減少させる数列を生成
hajimari = 13 # 開始点
owari = 4 # 終了点
kizami = 0.4 # 刻み幅
# linspace関数を使用して数列を生成
# endpoint=Trueでowariを含む
genkaiShosuList = np.linspace(hajimari, owari, int((hajimari - owari) / kizami) + 1, endpoint=True)
# 生成した数列を出力
for suuchi in genkaiShosuList:
print(suuchi)
このコードのポイントは、数列が減少する方向に生成されることです。
この場合、開始点が終了点よりも大きい値になります。numpyのlinspace関数は、第一引数に開始点、第二引数に終了点を取り、第三引数に生成する数の要素数を指定します。この要素数は、範囲を刻み幅で割った値に1を足すことで計算できます。このようにして、13から4まで0.4刻みで減少する数列を簡単に生成できます。
【numpy.linspace】
まとめ
以上で、Pythonで小数点刻みの繰り返し処理を実行する方法について解説しました。この記事では、特にnumpyのlinspace関数を使用する理由とその具体的な使用方法に焦点を当てました。linspace関数は、指定した範囲内で等間隔の数列を生成する強力なツールです。この関数を使えば、Pythonの標準range関数では扱うことができない小数点刻みの処理を簡単に実現できます。この記事がPythonの学習において役立つ情報を提供できたなら幸いです。
コメント