NumPyのarray関数の使い方を完全ガイド!Pythonリストからndarray配列を作成する基本
生徒
「Pythonでデータ分析をするときにNumPyってよく聞くんですが、array関数って何ですか?」
先生
「NumPyのarray関数は、Pythonのリストから高速に計算できる配列であるndarrayを作るための基本機能です。」
生徒
「普通のリストと何が違うんですか?」
先生
「計算速度やデータ処理の効率が大きく違います。データ分析や機械学習では必須の知識です。それでは具体的な使い方を見ていきましょう。」
1. NumPyのarray関数とは
NumPyのarray関数は、Pythonのリストやタプルなどのデータを、高速に処理できるndarrayという配列に変換するための関数です。Pythonの標準リストは柔軟で扱いやすい反面、大量の数値データを繰り返し計算する場面では処理速度が遅くなることがあります。そのため、データ分析や機械学習の分野ではNumPyの配列が広く使われています。
array関数を使うと、単なるデータの入れ物だったリストが、数値計算に特化した効率のよい配列に変わります。例えば、複数の数値をまとめて計算したり、同じ処理を一度に実行したりできるのが特徴です。これにより、コードがシンプルになり、処理のスピードも大きく向上します。
import numpy as np
numbers = [10, 20, 30]
arr = np.array(numbers)
print(arr)
[10 20 30]
このように、Pythonリストをそのままarray関数に渡すだけで、NumPyのndarray配列が作成されます。初心者の方はまず、このリストから配列に変換する流れをしっかり理解しておくことが大切です。NumPyのarray関数は、データ分析の最初の一歩として非常に重要な基本機能になります。
2. array関数の基本的な使い方
まずは、PythonのリストからNumPy配列を作成する基本的な方法を見ていきます。array関数は非常にシンプルで、リストを引数に渡すだけで配列が作成されます。Pythonのプログラミング初心者でも覚えやすく、NumPyを学ぶときに最初に身に付ける基本操作の一つです。
Pythonのリストは複数の値をまとめて管理できますが、そのままではNumPyの便利な機能は利用できません。そこでarray関数を使うと、リストの内容をNumPyのndarrayへ変換できます。難しい設定は必要なく、リストをそのまま渡すだけなので、初めて使う方でも安心して試せます。
import numpy as np
data = [1, 2, 3, 4, 5]
arr = np.array(data)
print(arr)
[1 2 3 4 5]
この例では、変数dataに入っているPythonリストが、array関数によってNumPy配列へ変換されています。printで表示すると、配列の内容がそのまま確認できます。
例えば、テストの点数や商品の価格、毎日の気温など、数値を一覧で管理したい場面では、このようにリストからNumPy配列を作成する方法がよく使われます。まずは「Pythonリストをnp.arrayに渡すとNumPy配列が作成される」という基本的な流れを理解しておくことが大切です。
3. 多次元配列の作成方法
NumPyのarray関数は、二次元配列や三次元配列などの多次元データも簡単に作成できます。リストの中にリストを入れることで、多次元配列を表現できます。初めて見ると難しく感じるかもしれませんが、「リストを縦方向に並べたもの」と考えると理解しやすくなります。
例えば、学校の成績表や商品の一覧表のように、行と列を持つデータは二次元配列で表現できます。1つのリストが1行となり、それらをさらに大きなリストでまとめることで、多次元配列が作成されます。
import numpy as np
data = [
[1, 2, 3],
[4, 5, 6]
]
arr = np.array(data)
print(arr)
[[1 2 3]
[4 5 6]]
この例では、最初のリストが1行目、次のリストが2行目として扱われています。そのため、画面に表示すると表のような見た目になります。Pythonのリストだけでも同じようなデータは作れますが、NumPy配列へ変換することで、多次元データを統一された形式で管理しやすくなります。
このように、表形式のデータや行列データも簡単に扱えるのがNumPyの強みです。CSVデータや表計算ソフトのようなデータを扱う場面でも、多次元配列はよく利用されます。まずは「リストの中にリストを書くと二次元配列になる」という基本的な考え方を覚えておきましょう。
4. dtypeを指定してデータ型を設定する
NumPyのarray関数では、dtypeという引数を使ってデータ型を指定することができます。データ型とは、数値を整数として扱うのか、小数として扱うのかを決める種類のことです。PythonのリストからNumPy配列を作成するときにdtypeを指定すると、配列の中身を目的に合わせた型でそろえることができます。
例えば、点数のように小数が不要なデータは整数、平均点や割合のように小数を使いたいデータは浮動小数点数として扱うとわかりやすくなります。NumPyでは、array関数の中でdtype=floatのように書くことで、作成するndarray配列のデータ型を指定できます。
import numpy as np
data = [1, 2, 3]
arr = np.array(data, dtype=float)
print(arr)
print(arr.dtype)
[1. 2. 3.]
float64
この例では、もとのリストには1、2、3という整数が入っていますが、dtype=floatを指定しているため、NumPy配列では1.、2.、3.のように小数として表示されています。print(arr.dtype)を使うと、その配列がどのデータ型で作られているのかを確認できます。
dtypeを指定しておくと、あとから計算するときに「整数のつもりだった」「小数で扱いたかった」といった混乱を減らせます。NumPyのarray関数を使うときは、配列の中にどのようなデータを入れるのかを意識しながら、必要に応じてdtypeを設定すると扱いやすくなります。
5. array関数とPythonリストの違い
PythonのリストとNumPy配列には大きな違いがあります。最も大きな違いは、計算処理の書き方と一括処理のしやすさです。Pythonのリストは、文字や数値などを自由にまとめられる便利な入れ物ですが、数値をまとめて計算したい場合は、基本的に一つずつ取り出して処理する必要があります。
一方で、NumPyのarray関数で作成したndarray配列は、数値計算をしやすい形になっています。配列全体に対して、足し算や掛け算などの計算をまとめて実行できるため、データ分析や機械学習で扱う数値データの処理に向いています。
import numpy as np
data = [1, 2, 3]
# Pythonリスト
result_list = [x * 2 for x in data]
# NumPy配列
arr = np.array(data)
result_array = arr * 2
print(result_list)
print(result_array)
[2, 4, 6]
[2 4 6]
Pythonリストの場合は、リストの中から値を一つずつ取り出して、x * 2の計算をしています。初心者の方は、リストの中身を順番に確認しながら計算しているイメージを持つとわかりやすいです。
NumPy配列の場合は、arr * 2と書くだけで、配列の中にあるすべての数値に対してまとめて2倍の計算が行われます。繰り返し処理を自分で書かなくても、NumPyが配列全体を計算してくれるため、コードが短く読みやすくなります。
このように、Pythonリストは汎用的なデータ管理に向いており、NumPy配列は数値をまとめて計算する処理に向いています。少ないデータでは違いを感じにくいですが、データ量が増えるほど、NumPy配列を使うメリットが大きくなります。
6. array関数の注意点
array関数を使う際にはいくつか注意点があります。特に初心者がつまずきやすいのが、配列の中に入れる要素の型です。NumPy配列は、基本的に同じ種類のデータをまとめて扱うことを前提にしています。そのため、整数や文字列など、違う種類のデータが混ざっていると、自動的に一つの型へそろえられることがあります。
例えば、数値の1と3の間に、文字列の"2"が入っている場合を見てみましょう。見た目は数字のように見えても、"2"は文字として扱われます。このようなデータをarray関数でNumPy配列にすると、NumPyが全体を同じ型にそろえようとします。
import numpy as np
data = [1, "2", 3]
arr = np.array(data)
print(arr)
print(arr.dtype)
['1' '2' '3']
<U21
この例では、整数の1と3も文字列として扱われています。表示結果を見ると、すべての値に引用符が付いているため、数値ではなく文字として管理されていることがわかります。dtypeに表示されている<U21は、文字列として扱われていることを表しています。
数値として計算したいデータに文字列が混ざっていると、あとで足し算や平均値の計算をするときに思ったような結果にならないことがあります。NumPyのarray関数を使うときは、配列に入れる値の種類がそろっているかを確認することが大切です。
このように、意図しない型変換が起きることがあるため、必要に応じてdtypeを確認しながら配列を作成しましょう。Pythonリストからndarray配列に変換するときは、中身のデータが数値なのか文字列なのかを意識しておくと、エラーや計算ミスを防ぎやすくなります。
7. array関数が活躍する場面
NumPyのarray関数は、データ分析、機械学習、画像処理、数値計算など、さまざまな場面で活躍します。特に大量の数値データを扱う場合には、PythonのリストではなくNumPy配列を使うことで、データを整理しやすくなり、効率的に処理できます。
例えば、売上データ、テストの点数、気温の記録、商品の価格一覧など、数値をまとめて扱う場面ではNumPy配列が便利です。array関数を使えば、Pythonリストとして用意したデータを、計算しやすいndarray配列に変換できます。
import numpy as np
sales = [1200, 1500, 1800, 2000]
arr = np.array(sales)
print(arr)
print(arr.sum())
[1200 1500 1800 2000]
6500
この例では、売上データのリストをarray関数でNumPy配列に変換しています。配列にすると、sumを使って合計を簡単に求めることができます。実務では、日別売上の集計、月ごとのデータ確認、グラフ作成前の数値整理などで、このような処理がよく使われます。
また、Pandasや機械学習ライブラリでも、内部的にNumPy配列が使われることがあります。そのため、NumPyのarray関数でPythonリストからndarray配列を作成できるようになると、データ分析やPythonによる数値計算の理解が進みやすくなります。
まずは身近な数値データをリストで用意し、array関数でNumPy配列に変換してみると、どのような場面で役立つのかを実感しやすくなります。
8. NumPyを使うための準備
NumPyを使うためには、事前にPythonの環境へNumPyをインストールしておく必要があります。Pythonだけを入れた状態では、NumPyがまだ使えない場合があります。その場合は、pipというPythonのライブラリを追加するためのコマンドを使って、NumPyをインストールします。
pipは、Pythonで便利な機能を追加するときによく使う仕組みです。NumPyのarray関数を使いたい場合も、まずはNumPyをインストールし、そのあとPythonファイルの中で読み込んで使います。
pip install numpy
Successfully installed numpy
インストールが完了したら、Pythonのプログラム内でimport numpy as npと書いてNumPyを読み込みます。as npは、numpyという名前をnpという短い名前で使えるようにする書き方です。これにより、np.arrayのように短く書けるようになります。
import numpy as np
data = [10, 20, 30]
arr = np.array(data)
print(arr)
[10 20 30]
この例では、NumPyを読み込んだあと、Pythonリストをnp.arrayに渡してNumPy配列を作成しています。インストール、読み込み、array関数の実行という流れを覚えておくと、NumPyの学習を始めやすくなります。
初心者の方は、まずpip install numpyで準備を行い、次にimport numpy as npを書いてから、np.arrayで配列を作る流れを確認してみましょう。
まとめ
NumPyのarray関数のポイント整理
NumPyのarray関数は、Pythonのリストやタプルを、数値計算に特化したndarray配列へ変換するための基本機能です。Pythonでデータ分析や機械学習を行う場合、このarray関数の理解は非常に重要になります。リストは柔軟にデータを扱える反面、計算処理の効率では限界がありますが、NumPy配列に変換することで高速な数値計算が可能になります。
基本的な使い方はとてもシンプルで、np.arrayにリストを渡すだけで配列を作成できます。また、多次元配列にも対応しており、表形式のデータや行列データも簡単に扱える点が特徴です。さらにdtypeを指定することで、データ型を明確に制御できるため、計算の精度や処理効率を意識したプログラムが書けるようになります。
Pythonリストとの違いとしては、一括計算ができる点が大きな特徴です。ループ処理を書かなくても、配列全体に対して計算を適用できるため、コードが短くなり、可読性と処理速度の両方が向上します。この違いは、データ量が増えるほど大きくなり、実務では重要なポイントになります。
サンプルプログラムで理解を深める
import numpy as np
scores = [60, 70, 80, 90]
arr = np.array(scores)
print(arr)
print(arr * 2)
print(arr.mean())
[60 70 80 90]
[120 140 160 180]
75.0
このサンプルでは、テストの点数をNumPy配列に変換し、まとめて2倍の計算と平均値の算出を行っています。Pythonリストでは一つずつ処理する必要がありますが、NumPy配列では配列全体に対して一括で処理できるため、効率よくデータを扱うことができます。
初心者が意識するべきポイント
NumPyのarray関数を使う際は、配列に入れるデータの型をそろえることが重要です。異なる型が混ざると、自動的に型変換されるため、意図しない結果になることがあります。また、データ分析の現場では、CSVファイルやデータベースから取得した数値データを扱うことが多いため、NumPy配列に変換する習慣をつけておくと、後の処理がスムーズになります。
さらに、NumPyはPandasや機械学習ライブラリとも密接に関係しているため、array関数を理解しておくことで、より高度なデータ処理にも対応できるようになります。基礎をしっかり押さえることで、Pythonを使ったデータ分析の幅が広がります。
生徒
「NumPyのarray関数って、リストを配列に変えるだけだと思っていましたが、計算も楽になるんですね。」
先生
「そうですね。array関数は単なる変換ではなく、その後の計算を効率よくするための準備でもあります。」
生徒
「リストだと一つずつ処理しないといけないのが、まとめて計算できるのは便利だと感じました。」
先生
「その通りです。特にデータが増えてくると、その違いはとても大きくなります。」
生徒
「dtypeも意識しないといけないですね。型が変わるのは少し怖いです。」
先生
「良いところに気づきました。データの型を意識することは、正しい計算結果を出すためにとても重要です。」
生徒
「まずはリストからarrayに変換するところをしっかり練習してみます。」
先生
「それが一番大切です。基本を押さえれば、その先のデータ分析や機械学習も理解しやすくなりますよ。」