Pythonと多次元配列!全12手順で初心者でもマスターできる詳解ガイド – Japanシーモア

Pythonと多次元配列!全12手順で初心者でもマスターできる詳解ガイド

Pythonと多次元配列の詳細な解説ガイドのサムネイル画像Python
この記事は約9分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

このサービスは複数のSSPによる協力の下、運営されています。

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

Pythonの多次元配列は、データ分析や機械学習など、さまざまなプログラミング領域で活用されます。

多次元配列を効果的に使用するためには、その作成方法や操作方法、注意点、そして応用例を理解することが必要です。

この記事では、初心者から上級者までがPythonの多次元配列を深く理解できるよう、全12手順でその全貌を解説します。

●Pythonの多次元配列とは

○多次元配列の定義

多次元配列とは、1次元以上の配列、つまり、ベクトル(1次元配列)、行列(2次元配列)、テンソル(3次元以上の配列)のことを指します。

Pythonではnumpyライブラリを使用することで、容易に多次元配列を作成・操作することが可能です。

●多次元配列の作り方

Pythonで多次元配列を作成するには、主にnumpyライブラリのarray関数を用います。

○サンプルコード1:Pythonで2次元配列を作る

まずは、2次元配列(行列)を作る方法を解説します。

このコードではnumpyライブラリを使って2次元配列を作成します。

import numpy as np

# 2次元配列の作成
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(array_2d)

この例では、np.array関数にリストのリストを渡すことで2次元配列を作成しています。

この結果として、3×3の行列が作成されます。

○サンプルコード2:Pythonで3次元配列を作る

次に、3次元配列(テンソル)の作成方法を説明します。

このコードではnumpyライブラリを使って3次元配列を作成します。

import numpy as np

# 3次元配列の作成
array_3d = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print(array_3d)

この例では、np.array関数にリストのリストのリストを渡すことで3次元配列を作成しています。

この結果として、2x2x3のテンソルが作成されます。

●多次元配列の使い方

多次元配列の要素にアクセスしたり、要素を変更する方法を解説します。

○サンプルコード3:多次元配列の要素にアクセスする

このコードでは、numpyで作成した2次元配列の特定の要素にアクセスします。

import numpy as np

# 2次元配列の作成
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 特定の要素にアクセス
print(array_2d[1, 2])  # 出力:6

この例では、2次元配列array_2dの2行目3列目の要素にアクセスしています。

インデックスは0から始まるため、array_2d[1, 2]は2行目3列目を指します。

○サンプルコード4:多次元配列の要素を変更する

このコードでは、numpyで作成した2次元配列の特定の要素を変更します。

import numpy as np

# 2次元配列の作成
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 特定の要素を変更
array_2d[1, 2] = 10
print(array_2d)

この例では、2次元配列array_2dの2行目3列目の要素を10に変更しています。

●多次元配列の注意点

Pythonの多次元配列を使う際の注意点としては、全ての次元における配列の長さが一致していることが重要です。

例えば、2次元配列であれば全ての行が同じ列数を持つ必要があります。

また、numpyでは配列の形状(shape)が異なる配列同士の演算を行うことはできません。

したがって、配列同士の演算を行う際には、配列の形状が一致していることを確認する必要があります。

さらに、numpyの配列は同一のデータ型(dtype)しか保持できないという点も覚えておきましょう。

つまり、整数と文字列を混在させることはできません。

●多次元配列の対処法

上記の注意点に対処するための方法として、配列の形状を変更することがあります。

○サンプルコード5:配列の形状を変更する

このコードではnumpyライブラリのreshape関数を用いて、配列の形状を変更します。

import numpy as np

# 1次元配列の作成
array_1d = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

# 配列の形状を変更
array_2d = array_1d.reshape(3, 3)
print(array_

2d)

この例では、1次元配列array_1dを3×3の2次元配列に変更しています。

reshape関数に行数と列数を引数として渡すことで、配列の形状を変更できます。

●多次元配列の応用例

多次元配列は、行列の演算、データ分析、画像処理など、多岐にわたる領域で使用されます。

○サンプルコード6:行列の演算

このコードでは、numpyを使って行列の足し算と掛け算を行います。

import numpy as np

# 2つの2次元配列(行列)を作成
matrix1 = np.array([[1, 2, 3], [4, 5, 6]])
matrix2 = np.array([[7, 8, 9], [10, 11, 12]])

# 行列の足し算
print(matrix1 + matrix2)

# 行列の掛け算
print(matrix1 * matrix2)

この例では、matrix1とmatrix2という2つの2次元配列を用いて、行列の足し算と掛け算を行っています。

○サンプルコード7:データ分析

多次元配列はデータ分析で頻繁に使用されます。

このコードでは、numpyのmean関数を用いて2次元配列の各列の平均値を計算します。

import numpy as np

# 2次元配列(データセット)の作成
dataset = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 各列の平均値を計算
mean = np.mean(dataset, axis=0)
print(mean)

この例では、datasetという2次元配列の各列の平均値を計算しています。

np.mean関数のaxis引数に0を指定することで、列方向(縦方向)の平均を取得できます。

○サンプルコード8:画像処理

画像データは一般的に3次元配列(幅、高さ、色チャンネル)として表現されます。

このコードでは、画像データ(3次元配列)の一部を切り出す(スライスする)方法を紹介します。

import numpy as np
import matplotlib.pyplot as plt
import imageio

# 画像データの読み込み(画像はあらかじめ用意してください)
image = imageio.imread('image.jpg')

# 画像の一部を切り出す
cropped_image = image[50:150, 50:150]

# 切り出した画像を表示
plt.imshow(cropped_image)
plt.show()

この例では、あらかじめ用意した画像データを読み込み、その一部を切り出して表示しています。

●多次元配列のカスタマイズ方法

numpyの多次元配列には、スライシング、結合と分割、並び替え、条件指定による抽出など、多岐にわたる機能があります。

○サンプルコード9:配列のスライシング

このコードでは、2次元配列の一部を切り出す(スライスする)方法を示します。

import numpy as np

# 2次元配列の作成
array_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 配列のスライシング
sliced_array = array_2d[1:, 1:]
print(sliced_array)

この例では、2次元配列array_2dの右下部分をスライシングしています。

○サンプルコード10:配列の結合と分割

このコードでは、2つの1次元配列を結合し、それを2つの配列に分割します。

import numpy as np

# 2つの1次元配列の作成
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])

# 1次元配列の結合
combined_array = np.concatenate([array1, array2])
print(combined_array)

# 1次元配列の分割
split_arrays = np.split(combined_array, 2)
print(split_arrays)

この例では、np.concatenate関数とnp.split関数を使用して、配列の結合と分割を行っています。

○サンプルコード11:配列の並び替え

このコードでは、1次元配列の要素を並び替える方法を紹介します。

import numpy as np

# 1次元配列の作成
array = np.array([3, 1, 4, 1, 5, 9])

# 1次元配列の並び替え
sorted_array = np.sort(array)
print(sorted_array)

この例では、np.sort関数を用いて配列の要素を昇順に並び替えています。

○サンプルコード12:配列の条件指定による抽出

このコードでは、1次元配列から条件を満たす要素を抽出します。

import numpy as np

# 1次元配列の作成
array = np.array([0, 1, 2, 3, 4, 5])

# 条件を満たす要素の抽出(2以上かつ4以下の要素)
extracted_array = array[(array >= 2) & (array <= 4)]
print(extracted_array)

この例では、配列arrayから2以上かつ4以下の要素を抽出しています。

条件指定による抽出は、データ分析などで頻繁に使用されます。

まとめ

この記事では、Pythonでの多次元配列の作り方、使い方、注意点、対処法、応用例、カスタマイズ方法について詳しく解説しました。

Pythonの多次元配列は、機械学習やデータ分析など、さまざまな領域で必要となる知識です。

この記事があなたの学習に役立てば幸いです。