Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 1次元配列の作成関数 | NumPy基礎
NumPy基礎
セクション 1.  4
single

single

book1次元配列の作成関数

メニューを表示するにはスワイプしてください

要素を明示的に指定して配列を作成する基本的な方法に加えて、numpy では特別な関数を使って配列を自動的に作成することも可能です。ここでは、1次元配列を作成するための代表的な2つの関数を紹介します。

  • arange();
  • linspace().

arange()

numpy.arange() 関数は、Pythonの組み込み関数 range() に似ていますが、ndarray を返します。基本的に、指定した区間内で等間隔の要素を持つ配列を作成します。

例えば、区間が 0 から 10 でステップサイズが 2 の場合、生成される配列は [0, 2, 4, 6, 8] となります。

主な3つのパラメータとその役割は以下の通りです。

  1. start:

    • デフォルト値: 0;
    • 配列の最初の要素を表します。
  2. stop:

    • デフォルト値なし;
    • 終端値を定義しますが、この値は配列に含まれません。
  3. step:

    • デフォルト値: 1;
    • 各要素に加えられる増分を指定します。
12345678910
import numpy as np # Creating an array of integers from 0 to 11 exclusive with step=1 array_1 = np.arange(11) print(array_1) # Creating an array of integers from 1 to 11 exclusive with step=1 array_2 = np.arange(1, 11) print(array_2) # Creating an array of integers from 0 to 11 exclusive with step=2 array_3 = np.arange(0, 11, 2) print(array_3)
copy

linspace()

arange()実数にも対応していますが、この目的では numpy.linspace()numpy.arange() より推奨されます。なぜなら arange() はステップ計算時に浮動小数点の精度誤差による予期しない結果を生じる可能性があるからです。対照的に、linspace() は区間内に等間隔の特定数の点を生成し、精度と一貫性を確保します。

linspace() では step パラメータの代わりに num パラメータを使用し、指定した区間内のサンプル数(数値の個数、デフォルトは 50)を決定します。

1234567
import numpy as np # Generating 5 equally spaced values between 0 and 1 (inclusive) array_1 = np.linspace(0, 1, 5) print('Example 1:', array_1) # Generating 7 equally spaced values between -1 and 1 (inclusive) array_2 = np.linspace(-1, 1, 7) print('Example 2:', array_2)
copy

Endpoint

endpoint パラメータは stop 値を含めるかどうかを決定します。デフォルトは True含む)です。False に設定すると stop 値を除外し、ステップ幅がわずかに小さくなります。

array_inclusivearray_exclusive の比較例:

1234567
import numpy as np # Generating 5 equally spaced values between 0 and 1 (inclusive) array_inclusive = np.linspace(0, 1, 5) print('Endpoint = True:', array_inclusive) # Generating 5 equally spaced values between 0 and 1 (exclusive) array_exclusive = np.linspace(0, 1, 5, endpoint=False) print('Endpoint = False:', array_exclusive)
copy

endpoint=True の場合、区間 [0,1][0, 1]4つの等しい区間に分割され、終端 自体(1)も含まれます。このときのステップ幅は (10)/4=0.25(1 - 0) / 4 = 0.25 です。

endpoint=False の場合、区間 [0,1)[0, 1)5つの等しい区間に分割され、終端は含まれません。このときのステップ幅は (10)/5=0.2(1 - 0) / 5 = 0.2 です。

タスク

スワイプしてコーディングを開始

  1. arange() 関数を使用して even_numbers 配列を作成します。
  2. 引数を指定して、2 から 21 未満の偶数の配列を作成します。
  3. 指定した区間内で値の個数を指定できる関数を使って samples 配列を作成します。
  4. 最初の3つの引数を指定して、10 から 5 の間に等間隔で6個の数値を持つ配列を作成します。
  5. 6 配列に samples が含まれないようにします。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  4
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt