【Python入門】配列(array、list)を使おう

今回は、Pythonの意外なつまずきポイントである配列(リスト)について説明します。この記事では、

配列やリストと呼ばれるデータ構造があると聞いたんだけど?
配列、リスト、NumPyといろいろあるけど、結局どうやって使い分ければいいの?

といった疑問に答えています。最後には、たくさんの記事を紹介していますので、1つ1つ試してみると配列やリストではこんなことができるのか!というところを感じていただけます。

配列(リスト)を使うと同じようなデータをまとめて扱える

言葉の説明から始めましょう。皆さんは、日常生活で配列と聞いて何を思いつきますか。私は、プログラムの勉強を始めたときに、何も思いつかなかったことを良く覚えています。

配列は、完全にプログラミング関連の専門用語で初心者にはまったく理解できない言葉と言っていいでしょう。では、リストと聞いて何を思いつきますか。私は買い物チェックリスト(今なら、ほしい物リストでしょうか)が思いつきました。

たとえば正月に食べるおせち料理は、以下のようにチェックリストにして忘れないように買いますよね(しませんか?)

  • かまぼこ
  • 伊達巻き
  • 栗きんとん
  • 昆布巻き


そう考えるとリストは、日常で使われる言葉といって良さそうです。そこでこの記事では、Pythonのlist型オブジェクトのことを、単にリストと呼ぶことにします。そして、Pythonのリストも買い物チェックリストのようなデータをまとめて扱うのに適しています。

実行結果:

checklist = [“かまぼこ”, “伊達巻き”, “栗きんとん”, “昆布巻き”]と定義したリストを、print(checklist)の一文だけで、まとめて表示できました。ここで、もう少し言葉を決めておきましょう。

買い物チェックリスト全体(1枚の紙に書いたのであれば、その紙のこと)を、1つのリストと呼びます。もし2枚になるなら、2つのリストです。そして、紙に書いた1つ1つの商品のことを、1つの要素と呼びます。かまぼこが1つの要素です。

つまり、先ほどの買い物チェックリストには4つの要素が入っているわけです。リストと要素はこれから良く目にすることになりますので、よく覚えておきましょう。

リストを扱う2つの方法

さて、本題に戻りましょう。Pythonで配列のようなデータを扱うには、以下の2つの方法が有名です。

  • Python標準のリスト(list)
  • NumPyの配列(Numpy.ndarray)

では、Python標準のリスト(list)と、NumPyの配列(Numpy.ndarray)は、どのように使い分けると良いでしょうか。

要素1つ1つが大事ならPython標準のリスト(list)

要素の1つ1つが大事なら、Python標準のリスト(list)が良いでしょう。要素を1つ追加したり、1つ削除したりといった操作が多くなりそうであれば、Python標準のリスト(list)がオススメです。

そう考えると、上で紹介した買い物チェックリストのような場合は、Python標準のリスト(list)が良いことになりますね。

もちろん、このような場合でもNymPyのリスト(Numpy.ndarray)を使えます。効率を追求するなら、NumPyのリスト(Numpy.ndarray)を検討した方がいいでしょう。

リスト全体が大事ならNumPyの配列(Numpy.ndarray)

一方、要素ではなく配列全体が大事なら、NumPyの配列がおすすめです。たとえば、4月の最高気温を格納するといった場合です。

1日ごとの最高気温を気にしてもあまり意味は見いだせませんが、4月全体で最高気温の変動を見ると徐々に気温が上がっていく…わけでもなく、あまり変化しないことがわかりそうです。試しにグラフにしてみましょう。

実行結果:

python-array01

画像:4月全体で最高気温の変動グラフ

date(日付)とtemp(気温)をNumPyのリスト(Numpy.ndarray)に格納し、plt.plot(date, temp)でグラフに点と線をまとめて描いています。

リストの使い方を見ていこう

ざっくりとした使い分けは伝わったと思いますので、ここからは少し具体的に、リストをどのように操作するのかを紹介します。とはいえ、リストの操作方法は多岐にわたり、この記事だけでは説明しきれませんので、侍エンジニア塾ブログの他記事を紹介することにします。

まずは、Python標準のリスト(list)と、NumPyの配列(numpy.ndarray)の基本的な操作方法を紹介した記事です。どちらも同じように扱えることがわかります。

入門者必見!Pythonのリスト(配列)を使いこなすための5つのステップ
更新日 : 2019年8月6日

Python標準のリスト(list)の使い方

Python標準のリスト(list)の初期化方法や、要素の追加/削除、要素の検索など、基本的な操作方法を説明しています。

【Python入門】listの使い方とメソッドまとめ
更新日 : 2019年7月30日

Python標準のリスト(list)の要素を1つ1つ見て行くにはfor文を使うのが一般的です。

【Python入門】初心者必見!forループの使い方とその応用
更新日 : 2018年10月30日

Python標準のリスト(list)の要素を数えるにはlen関数を使いますが、それよりも高度な数え方をしたいときは、Counterを使います。

【Python入門】Counterで文字列や要素の数を数えよう!
更新日 : 2018年11月5日

Python標準のリスト(list)は、タプルに変換したり、タプルからPython標準のリスト(list)に変換したりできます。

【Python入門】tupleの一歩進んだ使い方
更新日 : 2019年2月28日

文字列を空白など任意の文字列で区切って、Python標準のリスト(list)に格納することもできます。単語1つ1つに注目したい場合によく使われる手法です。

Pythonのスライスの使い方を4つのパターンで簡単解説
更新日 : 2019年5月31日

逆に、Python標準のリスト(list)に文字列を格納しておき、join()で連結する方法もあります。

【Python入門】便利!joinの使い方まとめ
更新日 : 2019年5月5日

NumPyの配列(numpy.ndarray)の使い方

NumPyの基本的な使い方を説明した記事で、NumPyの配列(numpy.ndarray)も説明されています。

【Python入門】numpyで計算をしてみよう
更新日 : 2018年11月20日

NumPyの配列(numpy.ndarray)を元にグラフを描画する場合は、matplotlibライブラリを使います。さりげなくこの記事でも使いました。


【Python入門】plot関数でグラフを作成してみよう!
更新日 : 2019年4月16日

【Python入門】即実践できる!Pythonにおけるグラフの作成方法
更新日 : 2019年2月14日

このほか、TensorFlowなど機械学習系のライブラリでもNumPyの配列(numpy.ndarray)が使われることがあります。

【TensorFlow入門】機械学習フレームワークTensorFlowを学ぼう
更新日 : 2018年10月29日

使用するリスト・配列の種類は、使用するライブラリにあわせて、十分に検討する必要があります。

まとめ

Pythonでは、配列(array)やリスト(list)と呼ばれるデータ構造は、Python標準のリスト(list)とNumPyの配列(numpy.ndarray)があること、さらにはその使い分けの方針を簡単に説明しました。

買い物チェックリストのように要素の1つ1つが大事ならPython標準のリスト(list)が良く、4月の気温のようにリスト全体が大事ならNumPyのリスト(numpy.ndarray)がおすすめでした。

その他にも、使用するライブラリによってNumPyのリスト(numpy.ndarray)を使わないといけない場合もありました。結論は至極当たり前なのですが、最終的な目的を見据えて、どちらのリストを使うか検討してくださいね。

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

侍テック編集部

侍テック編集部

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説