こんにちは!
今回は NumPy配列を効率よく作成する方法について紹介していきます。
以降のプログラムでは、簡略化のため、以下のNumPyライブラリのインポートは省略しますが、プログラムを実行する際には必ず忘れないようにしましょう。
import numpy as np
指定した範囲から配列を作成する
指定した範囲から配列を作成するには、「arange()」を用います。
これは、組み込み関数のrange()に相当します。
以下のプログラムは、指定した範囲から配列を作成するプログラムです。
a = np.arange(10)
print(a)
実行結果
[0 1 2 3 4 5 6 7 8 9]
arange()とreshape()を組み合わせることで、簡単に指定した範囲の多次元配列を作成することができます。
以下のプログラムは、指定した範囲の多次元配列を作成するプログラムです。
n = 2
m = 3
b = np.arange(n*m).reshape(n, m)
print(b)
実行結果
[[0 1 2]
[3 4 5]]
開始値、終了値、ステップを指定して配列を作成することができます。
以下のプログラムは、引数を指定して配列を作成するプログラムです。
c = np.arange(5, 10, 2)
print(c)
実行結果
[5 7 9]
範囲を等分割した配列を作成する
範囲を等分割した配列を作成するには、「linspace()」を用います。
書式は次のようになります。
linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
startが開始値、
stopが終了値、
numが分割数です。
endpoint=Trueでstopの値を含み、endpoint=Falseで含みません。retstep=Trueで、ステップ間隔を返します。
以下のプログラムは、範囲を等分割した配列を作成するプログラムです。
a = np.linspace(0, 99, 10)
print(a)
実行結果
[ 0. 11. 22. 33. 44. 55. 66. 77. 88. 99.]
単位行列を作成する
NumPy配列では単位行列を簡単に作成することができます。
単位行列とは主対角線上の要素がすべて 1で、その他はすべて 0である行列のことです。
以下のプログラムは、単位行列を作成するプログラムです。
a = np.identity(3, dtype=int)
print(a)
実行結果
[[1 0 0]
[0 1 0]
[0 0 1]]
0または1のみの配列を作成する
NumPy配列では、0または1のみの配列を作成することができます。
ちなみに、0のみの行列は零行列と呼びます。
0のみの配列を作成する
以下のプログラムは、0のみの配列を作成するプログラムです。
z = np.zeros((2, 3), dtype=int)
print(z)
実行結果
[[0 0 0]
[0 0 0]]
1のみの配列を作成する
以下のプログラムは、1のみの配列を作成するプログラムです。
o = np.ones((2, 3), dtype=int)
print(o)
実行結果
[[1 1 1]
[1 1 1]]
要素を繰り返した配列を作成する
要素を繰り返した配列を作成するには、「repeat()」を用います。
repeat()は、各要素を引数文繰り返した配列を返します。
以下のプログラムは、要素を繰り返した配列を作成するプログラムです。
a = np.array([1, 2])
b = a.repeat(3)
print(b)
実行結果
[1 1 1 2 2 2]
repeat()とreshape()を組み合わせると、各行の値が同じ配列を作成することができます。
以下のプログラムは、各行の値が同じ配列を作成するプログラムです。
a = np.array([1, 2])
b = a.repeat(3).reshape(2, 3)
print(b)
実行結果
[[1 1 1]
[2 2 2]]
CSVファイルから配列を作成する
NumPy配列では、CSVモジュールを使用しなくても簡単にCSVファイルから配列を作成することができます。
CSVモジュールを用いてCSVファイルを読み書きする方法を以下の記事にまとめているので、是非見てみてください。
以下のプログラムは、CSVファイルから配列を作成するプログラムです。
読み込むファイルは以下のfile1です。
skiprowsは、読み飛ばす行数を指定します。
ここでは、skiprows=1とすることでヘッダを読み飛ばしています。
a = np.loadtxt("file1.csv", delimiter=',', skiprows=1, dtype=int)
print(a)
実行結果
[[160 60]
[170 70]]
まとめ
NumPy配列を効率よく作成する方法について理解できたでしょうか?
NumPy配列を作成することは、NumPy配列を扱う上で欠かせないことです。なので様々な配列の作成方法を身につけるようにしましょう!
まとめ記事に戻る