Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python – numpy.linspaceの使い方とnp.arangeとの違いを徹底解説

numpy.linspace関数は、指定した区間内に等間隔で配置された数値の配列を生成するためのNumPyの便利な関数です。グラフ描画やデータ分析など、一定間隔の数列が必要な場面でよく使われます。

基本構文

numpy.linspace(start, stop, num = 50, endpoint = True/False, retstep = False/True, dtype = None)

主なパラメータ

numpy.linspace関数では、以下のパラメータを指定できます。

  • start − 数列の開始値。デフォルトでは0として扱われます。

  • stop − 数列の終端値。

  • num − startからstopの間に生成する要素の個数。デフォルトは50です。

  • endpoint − stopの値を出力配列に含めるかどうかを制御します。Trueの場合、stopが配列の最後の要素として含まれます。Falseの場合、stopは出力に含まれません。

  • retstep − Trueに設定すると、生成されたサンプル値に加えて隣接する要素間のステップ幅(間隔)も返します。デフォルトはFalseです。

  • dtype − 出力配列のデータ型を指定します。指定しない場合は自動的に推論されます。

使用例1:基本的な等間隔数列の生成

まずは基本的な使い方を見てみましょう。1から20までの範囲に10個の等間隔の数値を生成します。

# numpyライブラリをインポート
import numpy as np

# linspace()関数で等間隔の数列を生成
x = np.linspace(start = 1, stop = 20, num = 10)

# 結果を四捨五入して見やすくする
y = np.round(x)

print ("linspace of X :\n", y)

出力結果

上記のコードを実行すると、次のような出力が得られます。

linspace of X :
 [ 1. 3. 5. 7. 9. 12. 14. 16. 18. 20.]

このように、startからstopまでの範囲がnumで指定した個数に応じて均等に分割され、等間隔の数列が生成されていることがわかります。

使用例2:np.arangeとの違い

np.arangenp.linspaceと似た働きをしますが、両者には重要な違いがあります。

  • np.linspace − 範囲の最小値と最大値の間に「いくつの値」を生成するかを個数で指定します。

  • np.arange − 「ステップ値(間隔)」を指定することで、範囲内に等間隔の値を生成します。

つまり、linspaceは「要素の個数」で、arangeは「間隔」で数列を定義するという違いがあります。次の例でその違いを確認してみましょう。

# 必要なライブラリをインポート
import numpy as np

# np.arange:ステップ値2で0から20未満まで生成
A = np.arange(0, 20, 2)
print ("Elements of A :\n", A)

# np.linspace:0から20の間に10個の値を生成
B = np.linspace(0, 20, 10)
B = np.round(B)
print ("Elements of B :\n", B)

出力結果

上記のコードを実行すると、次のような出力が得られます。

Elements of A :
 [ 0 2 4 6 8 10 12 14 16 18]
Elements of B :
 [ 0. 2. 4. 7. 9. 11. 13. 16. 18. 20.]

np.arangeはステップ値2ずつ増加するため20は含まれませんが、np.linspaceは終端値20を必ず含む点にも注目してください。用途に応じて、個数ベースのlinspaceと間隔ベースのarangeを使い分けることで、より柔軟に数列を扱えるようになります。

  1. PythonでPow(x, n)を実装する方法|ライブラリ関数を使わずにべき乗を計算するアルゴリズム

    問題の概要2つの入力 x と n が与えられたとします。x は -100.0 から 100.0 の範囲に収まる実数、n は32ビット符号付き整数です。ここでの課題は、ライブラリ関数を使用せずに x の n 乗(x^n)を求めることです。例えば、入力が x = 12.1、n = -2 の場合、出力は 0.00683 となります。解法のアプローチ:バイナリ累乗法(繰り返し二乗法)この問題は「バイナリ累乗法(繰り返し二乗法)」と呼ばれる手法で効率的に解けます。指数を2進数として扱い、計算回数を O(log n) まで削減できるのがポイントです。手順は以下の通りです。power に |n|(n の絶対

  2. Windows 10にNumPyをインストールする方法【初心者向け完全ガイド】

    Pythonで最も人気があり広く知られているライブラリのひとつがNumPy(ナンパイ)です。NumPyはPythonプログラミング言語向けのオープンソースライブラリで、科学技術計算やn次元配列の操作に幅広く活用されています。線形代数ルーチンや数学関数など、配列を扱うための高機能なツールを数多く提供しており、Pythonの拡張モジュールとして動作します。スクリプトをダウンロードして拡張機能やヘッダーファイルとして使うイメージに近い存在です。 本記事では、Windows環境にNumPyをインストールする具体的な手順を、初心者にもわかりやすく詳しく解説していきます。 Windows 10にNumP