Categories: python

Pythonのnpとは?NumPyの基礎から使い方まで徹底解説!

Pythonでデータ分析や機械学習を行う際に、必ずといっていいほど出てくる「np」という表記。これは、多くの場合「NumPy(ナンパイ)」というライブラリを省略して使ったものです。NumPyは数値計算を高速かつ効率的に行うために開発されたライブラリであり、Python初心者から上級者まで幅広い層に支持されています。本記事では、Pythonにおけるnp(NumPy)の意味や基本的な使い方、代表的な機能について、わかりやすく丁寧に解説していきます。これからPythonを学び始める方も、NumPyを本格的に使いこなしたい方も、ぜひ参考にしてください!

npとは?NumPyとは?

Pythonでよく見かける「np」という表記は、NumPy(Numerical Python)というライブラリを、短縮形で呼び出しているものです。
NumPyは、Pythonでの数値計算を高速化し、大量のデータを効率よく操作できるように設計されています。

例えば、Python標準のリストを使った場合と比較すると、配列演算や統計処理が格段に速く、コードもシンプルに書くことができます。
科学技術計算、機械学習、データ分析など、幅広い分野でNumPyは必須のライブラリとなっています。

NumPyをインポートする方法

NumPyを使うためには、まずライブラリをインポートする必要があります。
一般的には次のようにインポートします。

import numpy as np

ここで「as np」という記述をしているため、以後は「np」という短縮名でNumPyの機能を利用できるのです。
なお、NumPyがインストールされていない場合は、次のコマンドでインストールしましょう。

pip install numpy

簡単にインストールできるので、Pythonを使う環境では必ず入れておきたいライブラリです。

NumPy配列(ndarray)の作成

NumPyでは、配列を扱うために**ndarray(エヌディーアレイ)**という専用のデータ型を使います。
配列を作成するには、np.array()関数を使います。

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
print(arr)

出力結果:

[1 2 3 4 5]

リストをそのままNumPy配列に変換できるため、非常に直感的に使えます。
また、2次元配列や3次元配列も簡単に作成可能です。

arr2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2d)

出力:

[[1 2 3]
[4 5 6]]

配列操作の基本(shape, dtype, reshape)

NumPy配列は、さまざまな情報を持っています。代表的な属性やメソッドを紹介します。

  • shape: 配列の形状を取得
print(arr2d.shape)  # (2, 3)
  • dtype: データ型を確認
print(arr2d.dtype)  # int64(環境により異なる)
  • reshape(): 配列の形状を変更
arr_reshaped = arr.reshape((5, 1))
print(arr_reshaped)

出力:

cssコピーする編集する[[1]
 [2]
 [3]
 [4]
 [5]]

このように、NumPyでは柔軟に配列の形状を変更することができます。

配列同士の演算(加算・減算・掛け算・割り算)

NumPy配列は、同じサイズ同士であれば、加算・減算・掛け算・割り算が簡単にできます。

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

print(a + b) # [5 7 9]
print(a - b) # [-3 -3 -3]
print(a * b) # [4 10 18]
print(a / b) # [0.25 0.4 0.5 ]

このような要素ごとの演算は、リストではできない非常に便利な機能です。

便利なNumPyの関数(zeros, ones, arange, linspace)

NumPyには、便利な配列生成関数がいくつも用意されています。

  • zeros(): すべて0の配列を作成
np.zeros((2, 3))
# 出力: [[0. 0. 0.]
# [0. 0. 0.]]
  • ones(): すべて1の配列を作成
np.ones((2, 3))
# 出力: [[1. 1. 1.]
# [1. 1. 1.]]
  • arange(): 等間隔の値を生成(Pythonのrangeに似ている)
np.arange(0, 10, 2)
# 出力: [0 2 4 6 8]
  • linspace(): 開始と終了を指定して、等間隔に区切る
np.linspace(0, 1, 5)
# 出力: [0. 0.25 0.5 0.75 1. ]

これらの関数を活用すると、複雑な配列作成が非常に簡単になります。

NumPyでの統計処理(mean, median, std)

NumPyは統計処理にも強力な機能を持っています。

  • mean(): 平均値を計算
arr = np.array([1, 2, 3, 4, 5])
print(np.mean(arr)) # 3.0
  • median(): 中央値を計算
print(np.median(arr))  # 3.0
  • std(): 標準偏差を計算
print(np.std(arr))  # 1.4142135623730951

このように、複雑な統計処理も1行で完了するため、データ分析には欠かせない存在です。

NumPyとPython標準リストの違い

Python標準のリストとNumPy配列は、似ているようで性能や機能に大きな違いがあります。

比較項目PythonリストNumPy配列
要素型バラバラでもOK同じ型に統一される
メモリ使用量多い少ない
計算速度遅い速い
ベクトル演算不可(for文で計算)可(高速)

特に大量データを扱う場合、NumPyを使うことで圧倒的なパフォーマンス向上が得られます。

NumPyを使うメリットまとめ

  • 配列計算が超高速
  • コードが短くシンプルになる
  • メモリ効率が良い
  • 数値処理や統計処理に強い
  • pandasやscikit-learnなど他ライブラリと相性が抜群

Pythonでデータを扱うなら、NumPyを知らないのは大きな損です。
まずは基本的な使い方を押さえ、自分のプロジェクトでどんどん活用してみましょう。

まとめ:NumPyをマスターしてPythonスキルを高めよう

本記事では、Pythonにおけるnp(NumPy)について、基礎から実践的な使い方まで解説しました。
NumPyを使いこなすことで、Pythonでのデータ処理・計算が格段にスムーズになります。

最初は少しとっつきにくいかもしれませんが、基本のarray(), arange(), mean()などから使い始め、少しずつ応用していけば大丈夫です。
ぜひこの記事を参考に、NumPyマスターを目指してください!

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。