Python

Numpyの使い方

By 2021年3月24日March 25th, 2021No Comments

NumpyとはPythonで数値計算を効率的に行うためのライブラリです。機械学習やデータ解析には必須のライブラリなので、この記事を参考にしてNumpyの使い方を理解しましょう。

この記事では、Numpyとは何か、実際にはどのように使うのかについて、サンプルコードを多く用いて説明しますので、初学者の方にもおすすめです。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト

Numpyとは

Numpy(ナンパイ)とは、多次元配列(多次元配列の例としては、Excelで縦横に広がる数値は2次元配列です)を扱うモジュールがまとまった外部ライブラリです。モジュールやライブラリの意味については以下の記事でまとめているので参考にしてください。

# モジュール、ライブラリの記事のリンク

Numpyでできること

基本的には、非常に高速で計算が行える、と理解しておけば問題ありません。Pythonは基本的に、c言語やFortranといった言語と比べて処理が遅いと言われていますが、Numpyの内部はこれらの言語で実装されているので非常に高速に動作します。

そのため、Pythonの標準ライブラリと似たような関数があったら、Numpyのほうが高速でシンプルにコードを書けるのでおすすめです。

Numpyを使うには

Numpyは外部ライブラリなので、使うにはインストールが必要です。NumpyのインストールにはAnacondaやminicondaがおすすめです。

Anacondaは、インストールするとPythonの開発環境やエディタ(プログラムを書くソフトのことです。メモ帳もエディタにあたります)も同時にインストールできるので、すぐに開発を始められます。

Minicondaは、必要最低限のパッケージが含まれています。Anacondaに比べてデータ容量が少ないため、今までに他のプログラミング言語を扱ったことがあって、使い慣れたエディタなどがある人にはおすすめです。

Anacondaのインストール: https://www.anaconda.com/products/individual

Minicondaのインストール: https://docs.conda.io/en/latest/miniconda.html

Numpyの基本的な使い方

それではNumpyの基本的な使い方を説明します。まず、Numpyの関数や機能を使う際にはプログラムの初めにimport文を書く必要があります。

import numpy as np # numpyの呼び出し

x = np.array([1, 2, 3])
print(x)
# [1, 2, 3]  ←実行結果を示しています

Numpyを呼び出すときはnpと名前をつけるのが慣習的なのでas npとしてNumpyを呼び出しましょう。Numpyを使うプログラムではimportによる呼び出しを忘れずに行ってください。

importによってNumpyをPythonに呼び出したあとは、np.関数名 でNumpyの関数を使うことができます。

np.arrayは配列を作る関数です。配列とは、複数のデータを1つにまとめたもののことです。配列を用いることで、計算を効率的に行うことができます。

np.arrayでは多次元配列を作る事もできます。

y = np.array([[1, 2, 3], [4, 5, 6]])  # 二次元配列を作ります
print(y)
# [[1 2 3]
#  [4 5 6]]

配列(array)の作り方

配列の作り方をいくつか紹介します。コード内に、ポイントとなる点を説明しているので参考にしてください。

np.zeros

要素がゼロの配列を作る

x = np.zeros(5)   # ()内の数の0をもつ配列を作れます
print(x)
# [0. 0. 0. 0. 0.]

np.empty

np.zerosに比べて高速で配列を作ることができます。

x = np.empty(5)
print(x)
# [0. 0. 0. 0. 0.]

np.eye

単位行列を作ります。

x = np.eye(2)  # 2×2の単位行列を作ります
print(x)
# [[1. 0.]
    [0. 1.]]

np.linspace

規則的な配列を作ります。等差数列を作ることができます。

x = np.linspace(2, 20, 10)  # (始点, 終点, 個数)を書きます
print(x)
# [ 2.  4.  6.  8. 10. 12. 14. 16. 18. 20.]

np.arange

規則的な配列を作ります。等差数列を作ることができます。

np.linspaceは要素の数、np.arangeは数の間隔を指定する違いがあります。

x = np.arange(2, 20, 10)  #(始点, 終点, 間隔)を書きます
print(x)
# [2, 12]

配列の情報を調べる

作った配列に関する情報を調べる関数について紹介します。エラーが出たときによく使う関数なので覚えておきましょう。

.size

配列の要素の数を調べられます。

x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) 
print(x.size)
# 10
y = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
print(y.size)
# 10       
# 多次元配列でも同じように要素数を調べられます

.shape

配列の行数、列数を調べられます。

x = np.array([[2, 4, 6], [8, 10, 12]])  # 2×3の二次元配列
print(x.shape) 
# (2, 3)
x = np.array([3])
print(x.shape) 
# (1,)# 一次元のshapeを出力すると ,が付きますが問題ありません

.ndim

配列の次元数を調べられます。

x = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]]) 
print(x.ndim)
# 3

まとめ

今回はNumpyとは何か、実際どう使うかについての解説をしました。これからNumPyを勉強したい、機械学習を使って何か作ってみたいという人はまず理解しておきたい内容でした。Numpyを勉強していてつまずいたときは、この記事を見直しに来てください。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト
HOSL

Author HOSL

More posts by HOSL