Pythonで等差数列を作る方法【初心者向け】

初心者向けにPythonで等差数列を作る方法について解説しています。ここではrangeを使う方法、NumPy の arange を使う方法、NumPy の linspace を使う方法の3つを使います。それぞれの基本の書き方を覚えましょう。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

Pythonで等差数列を作る方法について解説します。

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonで等差数列を作る方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

等差数列を作る方法

等差数列とは、隣の値(項)との差が同じ数列のことです。例えば以下のような数列です。

10, 20, 30, 40, 50, ...

Python で等差数列を作成する方法はいくつかあります。

rangeを使う方法

range(開始, 終了, ステップ)

開始から終了-1までの範囲で、ステップの差で数列を作成します。戻り値は range 型となります。

NumPy の arange を使う方法

numpy.arange(開始, 終了, ステップ, dtype)

こちらも同様です。開始とステップ、dtypeは省略できます。dtypeは数列の要素の型を指定します。初期値はNone(開始や終了の型に合わせる)です。

NumPy の linspace を使う方法

numpy.linspace(開始, 終了, 分割数, endpoint = True, retstep = False, dtype = None)

こちらは上記とは考え方が異なり、開始から終了までの範囲を分割数で分割した数列を返します。終了も含みます。開始と終了は必須です。その他のオプションは省略可能です。

オプション 説明 既定値
分割数 出来上がる数列の要素数 50
endpoint 終了を要素に含むか True
retstep Trueにすると公差を表示 False
dtype 数列の要素の型 None(float型になる)

 

実際に書いてみよう

今回は上記の3つの方法における等差数列の書き方を確認します。確認しやすいよう、結果は NumPy 配列型で表示することとします。プログラムは Python インタプリタで入力していきます。事前に Python と NumPy ライブラリをインストールする必要があります。はじめに必要なライブラリをインポートしておきましょう。

import numpy as np

最初は range を使う方法です。

np.array(range(10, 151, 10))

実行結果は以下のようになります。

array([ 10,  20,  30,  40,  50,  60,  70,  80,  90, 100, 110, 120, 130,
       140, 150])

次に、 NumPy の arange を使う方法です。

np.arange(10, 151, 10)

実行結果は以下のようになります。

array([ 10,  20,  30,  40,  50,  60,  70,  80,  90, 100, 110, 120, 130,
       140, 150])

最後に NumPy の linspace を使う方法です。

np.linspace(10, 150, 15)

実行結果は以下のようになります。要素に小数点が付いているのは float 型であることを表します。linspace で dtype の指定を省略した場合、要素の型は float 型となります。

array([ 10.,  20.,  30.,  40.,  50.,  60.,  70.,  80.,  90., 100., 110.,
       120., 130., 140., 150.])

なお、 linspace の範囲を分割するという考え方を使うと、他の方法では難しいような等差数列が簡単に作成できます。以下は円(-pi〜pi)を6分割する記述です。開始=終了のため、5角形を作成できます。

np.linspace(-np.pi, np.pi, 6)

実行結果は以下のようになります。指定範囲が少数も使って自動的に分割されているのが確認できます。

array([-3.14159265, -1.88495559, -0.62831853,  0.62831853,  1.88495559,
        3.14159265])

 

この記事を監修してくれた方

太田和樹(おおたかずき)
ITベンチャー企業のPM兼エンジニア

普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間でPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。