PythonでNoriが好んで使う辞書 Bunch 〜インストールと基本的な使い方〜

スポンサーリンク

Pythonの辞書とは?

Pythonで辞書というと、前に解説したリストのようにいくつかのデータを格納する仕組みのようです。

Pythonのリスト(配列)の基本〜プログラミング初心者はまずはこれだけ〜
リストとは?今回はリストとか配列と呼ばれる仕組みに関して解説します。前に変数に関して、説明しました。その時、変数名と変数は一対一の関係でした。list1 = "Hello World"print(...

リストは前にやった通り、こんな形でした。

a = [1, 2, 3, 4, 5]

print(a[1])

実行結果
2

辞書は「キー」と「値」を組み合わせ、格納するらしいです。

a = {"key1":1, "key2":2, "key3":3, "key4":4, "key5":5}

print(a["key3"])

実行結果
3

辞書の場合は、[ ] ではなく、{ } を使い、「キー:値」と言う形で格納していくそうです。

そして呼び出す時は、「キー」を用いて「値」を呼び出すんだそうです。

個人的にこの書き方はどうも慣れないので、使ったことはありません。

(みんな使っているんだろうか?なんて思ってみたり…)

プログラミングが仕事の方やチームで開発している方は、こう言った基礎的なこともしっかり学んだほうがいいと思いますので、詳しく解説しているサイトを紹介しておきます。

【Python入門】dictionary(辞書)の使い方。基本と応用 | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト
Pythonでは「キーと値を組み合わせたdictionary(辞書)」というものがあります。 辞書を使用することで、特定の要素を検索したり、追加や削除も簡単にできます。 そもそもdictionaryって何? dictionaryの基本的な使い方が知りたい 辞書型はリスト型に比べるとやや複雑ではありますが、覚えることで目...

その代わりに私が使用しているのが、Bunchというちょっと違った辞書です。

今回はそのBunchのお話。

スポンサーリンク

Bunchのインストール

BunchはAnacondaに最初からは入っていないので、最初に自分でインストールする必要があります。

Bunchのインストール方法は、Anacondaの使い方を紹介した時に、一緒に紹介しましたが、今一度紹介しておきます。

Pythonプログラミング環境 Anaconda 〜インストール・基本的な使い方・パッケージのインストール方法〜
AnacondaについてとりあえずAnacondaのウェブサイトを紹介しましょう。トップページにはでかでかとThe Enterprise Data Science Platform for Data Sci...

まずAnaconda-Navigatorから「Qt Console」を起動します。

起動すると新しいウインドウが開きます。

新しいコンソールが開きますので、下記のコードを書いて、Shift+Enter。

pip install bunch

「Successfully installed bunch-1.0.1」と表示され、インストール完了です。

ただ、最後の「1.0.1」はバージョン番号なので、アップデートされていたら、違うかもしれません。

これでインストール完了です。

ちなみにsklearnというパッケージを入れても付いてくるらしいです。

スポンサーリンク

Bunchの基本的な使い方

Bunchを使うにはまずインポートする必要があります。

from bunch import Bunch

Bunchを直接インストールせず、sklearnを入れた方は、こんな感じでインポートできます。

from sklearn.datasets.base import Bunch

そしてまずは空のデータセットを作ります。

from bunch import Bunch

data1 = Bunch()

print(data1)

実行結果
{}

この空のデータセットにデータを入れるには、データ名とデータを放り込む感じです(分かりにくい…)。

from bunch import Bunch

data1 = Bunch()

data1.time = [0, 1, 2, 3, 4, 5]

print(data1.time)

実行結果
[0, 1, 2, 3, 4, 5]

data1.timeのところをもう少し分解して説明するとこんな感じです。

このデータセットに対し、他のデータ(今回はtempとします)を入れ込むことも可能です。

from bunch import Bunch

data1 = Bunch()

data1.time = [0, 1, 2, 3, 4, 5]
data1.temp = [5, 10, 15, 20, 25, 30]

print(data1.time)
print(data1.temp)

実行結果
[0, 1, 2, 3, 4, 5]
[5, 10, 15, 20, 25, 30]

私の場合は今回紹介したように、例えば時間だったり、温度だったりとそれぞれのデータを別のデータ名として保存することが多いです。

またそれぞれのデータを呼び出す時は、データセット名.データ名で呼び出せますし、さらに今回の例のようにリストを格納した場合、そのままインデックス指定も可能です。

from bunch import Bunch

data1 = Bunch()

data1.time = [0, 1, 2, 3, 4, 5]

print(data1.time)
print(data1.time[2])

実行結果
[0, 1, 2, 3, 4, 5]
2

またデータセットの中に入れたデータ名を一覧で取得するには、keys()を用います。

from bunch import Bunch

data1 = Bunch()

data1.time = [0, 1, 2, 3, 4, 5]
data1.temp = [5, 10, 15, 20, 25, 30]

print(data1.keys())

実行結果
dict_keys(['time', 'temp'])

データをBunchに格納した後、keys()を使ってデータ名を表示させると、ちゃんと格納されているか簡単に確認できます。

とりあえずBunchに関してはこんな感じです。

スポンサーリンク

Bunchに関してのちょっとした後書き

しかしなぜBunchを使うようになったかと言うと、一時期機械学習をやろうと思って、sklearnを学んでいたんですが、その時に使用されていた辞書がBunchだったんです。

で最近、また機械学習に関して調べてみたら、pandasというデータ分析のライブラリを使っている人が多いように思います。

またBunchを使い始めた時も、あまり情報が見当たらなく、苦労したことを覚えています。

もしかしたらあまり主流ではないのでしょうか?

個人的にはしっくりくるし、使いやすくて好きなのですが、スタンダードな辞書クラスを学んだり、pandasを学んだりしたいなぁと思う今日この頃です。

次回はその辞書に関する基本知識と使い方に関して解説をしていきます。

Pythonのスタンダードな辞書 〜要素、キー、値の追加と呼び出し方〜
再Pythonの辞書とは?Bunchクラスを説明した時に、少しスタンダードな辞書のことを説明しました。辞書とはデータを格納する形式の1つです。また前にはリストと呼ばれるデータの格納方法に関して説明をしていま...

ということで今回はこんな感じで。

コメント

タイトルとURLをコピーしました