Skip to content

Python NumPy の配列チュートリアル: 配列の作成、操作、可視化

Updated on

大規模なデータセットで作業する場合や、複雑な数学演算を行う必要がある場合、NumPy はあなたのデータサイエンスのツールキットに必要不可欠なツールです。 NumPy を使用すると、多次元配列を効率的に作成および操作できるため、科学計算や機械学習のコアライブラリとしての位置付けとなっています。

このチュートリアルでは、Python で NumPy を開始する方法を説明します。 インストール、ブロードキャスト、インデックス、スライス、可視化について取り上げ、パフォーマンスの最適化とエラーのトラブルシューティングについても説明します。さっそく始めましょう!

Python でデータ可視化をすばやく行いたいですか?

PyGWalker は、Jupyter Notebook ベースの環境で直接データ分析および可視化ワークフローをスピードアップするためのオープンソース Python プロジェクトです。

PyGWalker (opens in a new tab) は、Pandas Dataframe (または Polars Dataframe) をvisual UI に変換し、変数をドラッグ&ドロップして簡単にグラフを作成できます。 以下のコードを使用するだけです:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

次のオンラインノートブックで PyGWalker をすぐに実行できます:

そして、GitHub で ⭐️ をお忘れなく!

Kaggle Notebook で PyGWalker を実行 (opens in a new tab)Google Colab で PyGWalker を実行 (opens in a new tab)GitHub で PyGWalker に ⭐️ をつける (opens in a new tab)
Run PyGWalker in Kaggle Notebook (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)

NumPy とは何で、データサイエンスにとって重要なのか?

NumPy は Python で数値計算を行うためのライブラリです。高パフォーマンスの多次元配列オブジェクトとこれらの配列を操作するためのツールを提供します。 NumPy 配列を使用すると、数学演算を一度に配列全体で実行できるため、従来の Python リストよりも高速になります。

NumPy はデータサイエンスにおいて重要であるため、大規模なデータセットの効率的な操作と数値演算が可能になります。 NumPy 配列は、機械学習アルゴリズム、画像処理、科学シミュレーションなどで広く使用されています。

コンピュータに NumPy をインストールする方法は?

NumPy を使用する前に、コンピュータにインストールされていることを確認しましょう。Python のパッケージインストーラーである pip を使用して、NumPy をインストールできます。

pip install numpy

NumPy がインストールされたら、Python 環境にインポートすることができます。

import numpy as np

NumPy 配列操作

まず、NumPy 配列を作成してみましょう。numpy.random.rand() 関数を使用して、ランダムな数値で満たされた 2 次元配列、つまり行列を作成します。

import numpy as np
 
# ランダムな数値で 3x3 の配列を作成
arr = np.random.rand(3, 3)
 
print(arr)

これにより、次のように出力されます。

array([[0.5488135 , 0.71518937, 0.60276338],
       [0.54488318, 0.4236548 , 0.64589411],
       [0.43758721, 0.891773  , 0.96366276]])

NumPy 配列ができたので、それにいくつかの操作を行ってみましょう。NumPy は、加算、減算、乗算、除算など、多数の数学演算をサポートしています。

# 配列の各要素に 10 を加える
arr = arr + 10
 
# 配列の各要素を 2 倍する
arr = arr * 2
 
# 配列の各要素を 3 で割る
arr = arr / 3
 
print(arr)

これにより、次のように出力されます。

array([[6.22202665, 6.61503667, 6.47785626],
       [6.6808859 , 6.49408332, 6.75637531],
       [6.1817823 , 7.63341086, 7.92046462]])

NumPy 配列のインデックス

NumPy 配列のインデックスは、Python リストのPythonのリストのインデックス付けについてのMDXファイルを日本語に翻訳します。配列の要素には、角括弧を使って指標を指定することでアクセスできます。

import numpy as np
 
# 0から15までの数値の2次元配列を作成
arr = np.arange(16).reshape((4,4))
 
# 配列全体を表示
print(arr)
 
# 2行3列の要素を表示
print(arr[2, 3])
 
# 配列の最初の行を表示
print(arr[0, :])
 
# 配列の最後の列を表示
print(arr[:, 3])
 
# 行の1から3と列の1から3のサブ配列を表示
print(arr[1:4, 1:4])

以下が出力されます。

array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])

11

[0 1 2 3]

[ 3  7 11 15]

[[ 5  6  7]
 [ 9 10 11]
 [13 14 15]]

NumPy vs. pandas

NumPyとpandasは、どちらもデータサイエンスにおいて重要なライブラリですが、異なる目的に使用されています。NumPyは数値計算と配列の操作に使用され、一方pandasはデータの操作と分析に使用されます。

NumPyは大規模な配列に対する数値演算により効率が良く、pandasは表形式のデータの操作に優れています。NumPyは、機械学習アルゴリズムにデータを入力する前にデータを前処理するために使用されます。一方、pandasはデータ駆動型のワークフローでデータセットを操作するために使用されます。

NumPyのデータ型

整数、浮動小数点数、およびブール値を含む、NumPy配列は異なるデータ型を持つことができます。dtypeパラメータを使用して、配列を作成するときに、配列のデータ型を指定できます。

import numpy as np
 
arr_int = np.array([1, 2, 3])   # 整数配列
arr_float = np.array([1.0, 2.0, 3.0])   # 浮動小数点数配列
arr_bool = np.array([True, False, True])   # ブール値配列
 
# 配列のデータ型を出力する
print(arr_int.dtype)
print(arr_float.dtype)
print(arr_bool.dtype)

以下が出力されます。

int64
float64
bool

NumPyのブロードキャスト

ブロードキャストは、NumPyの強力な機能の1つで、異なる形状の配列上で数学演算を実行できます。2つの配列で演算を行う場合、NumPyは要素ごとに配列の形状を比較して、小さい配列を大きい配列に合わせてブロードキャストします。

import numpy as np
 
# 1が入った3x3の配列を作成
arr = np.ones((3, 3))
 
# 配列のすべての要素に2を加算
arr = arr + 2
 
# 配列の偶数要素をすべて3倍にする
arr[arr % 2 == 0] *= 3
 
print(arr)

以下が出力されます。

array([[ 9.,  3.,  9.],
       [ 3.,  9.,  3.],
       [ 9.,  3.,  9.]])

NumPy配列を機械学習に使用する方法

NumPy配列は、機械学習アルゴリズムにおいて重要な役割を果たします。機械学習モデルは、配列形式でデータを受け取り、NumPyはこのデータを前処理および操作するためのさまざまなツールを提供します。

たとえば、画像データを扱う場合、NumPy配列は画像のピクセルを多次元配列として表すことができます。この配列は、トレーニングおよび予測のための機械学習モデルに送信することができます。

NumPyは、データをトレーニングおよびテストのサブセットに分割する、データのスケーリング、カテゴリカル変数のエンコードなどの機能も提供します。

NumPy配列操作の効率的なテクニック

NumPyは、効率的な配列操作のためのさまざまな関数やテクニックを提供します。以下はその一例です。

  • 配列の変形: reshape関数を使用して、配列の形状を特定の操作やアルゴリズムの要件に合わせて変更します。

  • 配列のスタッキング: hstackvstack、およびdstack関数を使用して、配列を水平方向、垂直方向、および深度方向にスタックします。

  • 配列の転置: transpose関数を使用して、2次元配列の行と列を交換します。

  • 配列のソート: sort関数を使用して、配列の要素を昇順または降順で並べ替えます。

NumPy配列エラーのトラブルシューティングのヒント

大規模なデータセットを扱う場合、NumPy配列を扱うことは難しいことがあります。以下は、一般的なNumPy配列のエラーのトラブルシューティングのためのヒントです。

  • 配列の形状をチェックする: 操作を実行するために使用する配列が正しい形状を持つか確認してください。

  • 配列を正しいデータ型にキャストする: 数学演算で使用する配列が正しいデータ型を持つことを確認してください。

  • ブロードキャストを適切に使用する: ブロードキャストは強力な機能である一方、予期しない結果につながる場合があります。操作を行う前にブロードキャストされた配列の次元を再確認してください。

  • NaNまたはInfinity値を確認する: NaN(NaN)またはInfinity値は、数学演算でエラーを引き起こす場合があります。操作を実行する前にこれらの値がないか確認してください。

結論

NumPyは、大規模なデータセットと数値演算を扱うためにPythonで重要なライブラリです。本チュートリアルでは、インストール、ブロードキャスト、インデックス付け、スライス、および可視化について説明し、パフォーマンスを最適!