AI資格ドリル
資格を選ぶ

用語比較

np.arangeとnp.linspaceの違い|刻み幅で指定するか、点の数で指定するか(Python3データ分析)

np.arange は刻み幅(step)を決めて値を並べ、np.linspace は要素の数(num)を決めて値を並べます。刻みを決めたいなら arange、点の数を決めたいなら linspaceと分けます。

arange は終点を含まない半開区間 [start, stop) の値を返し、linspace は既定で終点 stop を含む num 個の等間隔の値を返します。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。

np.arangeとnp.linspaceの要点

np.arange

start、stop、step を指定する。区間は [start, stop) で、終点 stop は含まない。整数の引数なら、組み込みの range に近い働きで、ndarray を返す。

np.linspace

start、stop、要素の数 num(既定は50)を指定する。既定の endpoint=True では終点 stop を含む。dtype を指定しなければ、戻り値は整数にならず浮動小数点になる。

違いを表で確認

比較軸np.arangenp.linspace
何を指定するか刻み幅 step(既定は1)。要素の数は結果として決まる要素の数 num(既定は50)。刻み幅は結果として決まる
終点を含むか含まない。区間は半開区間 [start, stop)既定では含む。endpoint=False にすると含まない
小数の刻みでの要素数浮動小数点の丸め誤差のため、要素数を予測しにくい。長さは ceil((stop - start)/step) で、最後の要素が stop を超えることもあるnum で要素数を直接決めるので、要素数がずれない
公式の例np.arange(3, 7, 2) は array([3, 5])。np.arange(3.0) は array([0., 1., 2.])np.linspace(2.0, 3.0, num=5) は array([2., 2.25, 2.5, 2.75, 3.])

Python3エンジニア認定データ分析試験の学習に使う書籍(Amazon)

PR

ほかの資格を含む参考書・問題集の一覧を見る

どこで迷っているかを切り分ける

01

整数の連番がほしい人

arange を使います。np.arange(3) は array([0, 1, 2]) で、終点の3は入りません。np.arange(3, 7) は array([3, 4, 5, 6]) です。

02

グラフの横軸に、区間を決まった数の点で区切りたい人

linspace を使います。公式の Quickstart では、np.linspace(0, 2 * pi, 100) を、多くの点で関数を評価するのに便利な書き方として挙げています。

03

0.1 や 0.3 のような小数の刻みで並べたい人

公式のリファレンスは、整数でない step では linspace のほうがよいことが多いと書いています。刻みで並べるなら arange を使えますが、要素数がずれる可能性を踏まえます。

具体例で使い分ける

例 1

arange で整数の連番を作る

公式の例の np.arange(3, 7, 2) を見ます。

  • start が3、stop が7、step が2です。
  • 区間は [3, 7) なので、7は入りません。
  • 結果は array([3, 5]) で、次の値の7は stop に当たるため、入りません。

結論: arange は、終点を含まない半開区間で、刻み幅ごとに値を並べます。

例 2

linspace で終点を含むか選ぶ

公式の例の np.linspace(2.0, 3.0, num=5) を見ます。

  • 既定の endpoint=True なので、終点の3.0が入り、array([2., 2.25, 2.5, 2.75, 3.]) になります。
  • endpoint=False にすると、array([2., 2.2, 2.4, 2.6, 2.8]) で、3.0は入りません。
  • 公式は、endpoint が False のときは刻み幅も変わると注意しています。

結論: linspace は、終点を含めるかを endpoint で選びます。既定は含めます。

例 3

小数の刻みで arange を使うとき

公式の Quickstart の、小数の刻みの例を見ます。

  • Quickstart は、np.arange(0, 2, 0.3) が array([0., 0.3, 0.6, 0.9, 1.2, 1.5, 1.8]) を返すと示しています。
  • 同じ Quickstart は、浮動小数点の引数で arange を使うと、得られる要素数を予測するのが一般に難しいと書いています。
  • そのため、刻みの代わりに要素の数を渡す linspace を使うのがよいとしています。例は np.linspace(0, 2, 9) で、0から2までの9個の数が並びます。

結論: 小数の刻みでは、要素数を直接決められる linspace が安全です。

問題文から答えを選ぶ手順

  1. 1

    何を先に決めたいかを見る

    刻み幅(1ずつ、2ずつ)を決めたいなら arange、点の数(5個、100個)を決めたいなら linspace です。

  2. 2

    終点を含めたいかを見る

    終点を含めたいなら、既定のままの linspace が向いています。arange は終点を含みません。

  3. 3

    刻みが小数かを見る

    刻みが 0.1 のような小数なら、公式の案内に沿って linspace を選びます。

試験での見分け方

  • 1整数の刻みで連番を作るときは arange を使う。
  • 2要素の数を決めて、区間を等分するときは linspace を使う。
  • 3arange は終点を含まず、linspace は既定で終点を含む。
  • 4小数の刻みでは、要素数を予測しにくい arange より、linspace を使う。

誤答しやすい選択肢

arange の終点が結果に入ると考える

修正: arange の区間は半開区間 [start, stop) で、stop は入りません。np.arange(3, 7) は array([3, 4, 5, 6]) です。

linspace の第3引数を刻み幅と考える

修正: linspace の num は要素の数です。刻み幅ではありません。np.linspace(2.0, 3.0, num=5) は5個の値を返します。

小数の刻みでも arange の要素数が必ず決まると考える

修正: 公式は、浮動小数点の引数では要素数を予測するのが一般に難しいと書いています。要素数が大事なときは linspace を使います。

確認問題

Q1np.arange(3, 7, 2) の結果は?

答え: array([3, 5])

区間は [3, 7) で、2ずつ増やします。終点の7は入りません。

Q2np.linspace(2.0, 3.0, num=5) の結果は?

答え: array([2., 2.25, 2.5, 2.75, 3.])

既定の endpoint=True なので、終点の3.0を含みます。

Q3np.linspace の num の既定値は?

答え: 50

num を省くと、50個の等間隔の値を返します。

Q4小数の刻みで要素数を確実に決めたいとき、arangeとlinspaceのどちらがよいか?

答え: linspace

linspace は要素の数を直接渡します。arange は浮動小数点の誤差で要素数を予測しにくいと、公式が説明しています。

到達チェック

  • arange が刻み幅で、linspace が要素数で指定することを説明できる
  • arange が終点を含まないことを言える
  • linspace の endpoint の既定値と動きを答えられる
  • 小数の刻みで linspace が勧められる理由を言える

同じ資格で次に知りたいこと

よくある質問

Qnp.arangeとnp.linspaceの違いは?

A

arange は刻み幅 step を指定し、終点を含まない [start, stop) の値を返します。linspace は要素の数 num を指定し、既定で終点を含む等間隔の値を返します。

Qlinspaceで終点を含めないには?

A

endpoint=False を指定します。公式の例では np.linspace(2.0, 3.0, num=5, endpoint=False) が array([2., 2.2, 2.4, 2.6, 2.8]) になります。

Q小数の刻みはどちらを使いますか?

A

公式のリファレンスは、整数でない step では linspace のほうがよいことが多いと案内しています。

Qデータ分析試験の範囲?

A

本サイトの第3章 NumPy で扱います。出題の形式や範囲は、受験前に公式の案内で確認してください。

次に見る比較

執筆: AI資格ドリル編集部(運営者情報を見る)