Pythonの配列の初期化 np.arrayや、リスト

Pythonの配列についてまとめています。

Pythonの配列は、リスト、辞書型、タプル、nampy.array

Pythonの配列

Pythonの配列には、リスト型、辞書型、タプル、numpy.arrayと複数の型があります。

Pythonのlist(リスト) 初期化は大かっこ[ ]

Pythonのlist(リスト) 初期化

pythonのlist型は、要素を[ ] (大かっこ)で囲んで初期化します。

要素の追加、更新、削除が自由に可能です。ソートも可能。

>>> mylist = ['a', 'b', 'c']
>>> print( mylist )
['a', 'b', 'c']
>>> mylist.append('d')
>>> print( mylist )
['a', 'b', 'c', 'd']

関連記事 Pythonのlist 入門 

リスト名.sort()で要素のソートも可能です。

>>> mylist2 = ['d','b','c','x','a']
>>> print( mylist2 )
['d', 'b', 'c', 'x', 'a']
>>> mylist2.sort()
>>> print( mylist2 )
['a', 'b', 'c', 'd', 'x']

Pythonの辞書型 初期化は中括弧 { }

Pythonの辞書型 初期化

Pythonの辞書型(dict)は、キーと値がセットになっていて、キーで値にアクセスが可能。

辞書型の値の初期化は、中括弧で囲みます。

要素の追加、更新、削除が可能です。

#初期化は 中括弧 { }、キーと値を記述
>>> mydict = {'dog':'wan wan wan', 'cat':'nya-nya-nya-', 'duck':'guwa-guwa-guwa'}
>>> print( mydict )
{'dog': 'wan wan wan', 'cat': 'nya-nya-nya-', 'duck': 'guwa-guwa-guwa'}
#キーを指定して要素にアクセス可能
>>> print( mydict['dog'] )
wan wan wan
#キー指定で、要素の更新もできる
>>> mydict['cat']='nyaaaaaaa'
>>> print(mydict)
{'dog': 'wan wan wan', 'cat': 'nyaaaaaaa', 'duck': 'guwa-guwa-guwa'}

ソートしたい場合は、sort()ではなく、sorted()を使います。

関連 Pythonのdictは辞書型

Pythonのタプル 初期化は括弧 ( )

Pythonのタプル 初期化

タプルは、1つの要素が複数の値のセットで構成される配列です。

タプルの値の初期化は、括弧 ( )でくくります。

1つの要素がlistになっている、「リストのリスト」のような型とも言えるでしょう。要素は異なる型が混在していてもOK、要素を構成する数がバラバラでもOKと、かなり自由度が高いです。

>>> mytuple = ((1,2,3), ('a',100), (1.5, 'dog', 'cat'))
>>> print( mytuple )
((1, 2, 3), ('a', 100), (1.5, 'dog', 'cat'))
>>> print( mytuple[1] )
('a', 100)

辞書型は辞書型名.items()を使って、タプル型に変換が可能。タプル型に変換すれば、ソートができるようになります。

>>> print ( mydict )
{'dog': 'wan wan wan', 'cat': 'nyaaaaaaa', 'duck': 'guwa-guwa-guwa'}
# 辞書型をタプル型に変換
>>> mytuple2 = tuple( mydict.items() )
>>> print( mytuple2 )
(('dog', 'wan wan wan'), ('cat', 'nyaaaaaaa'), ('duck', 'guwa-guwa-guwa'))

Pythonのアレイ 高度な行列演算が可能なnumpy.array

Pythonのアレイ(numpy)の初期化

numpyパッケージをimportすると利用できる、numpy.arrayは強力な行列計算が可能な配列です。

numpyの値の初期化は、numpy.arrayの引数として指定します。例えば、numpy.array([1,2,3])のようにします。

※下記の例では、numpyをnpに別名定義してimportしているので、np.arrayと指定します。ネットのサンプルなどでもnpに別名定義しているものが多いです。

#使用前にnumpyのインポートが必要
>>> import numpy as np
# numpy.array()で初期化
# npはキータイプの文字数を減らすためにつけた別名
>>> myarray = np.array([1,5,3,4,2])
>>> print (myarray)
[1 5 3 4 2]
# タプル型で記述することも可能。結果は同じ。
>>> myarray = np.array((1,5,3,4,2))
>>> print (myarray)
[1 5 3 4 2]
# 行列(2x3) を作成
>>> myarray = np.array([[1,5],[3,4],[2,6]])
>>> print(myarray)
[[1 5]
[3 4]
[2 6]]
# 行列計算が、一般の変数のように簡単に扱える。
>>> print( myarray+myarray )
[[ 2 10]
[ 6 8]
[ 4 12]]
>>> print( myarray*myarray )
[[ 1 25]
[ 9 16]
[ 4 36]]
>>> print( myarray/2 )
[[ 0.5 2.5]
[ 1.5 2. ]
[ 1. 3. ]]

numpy.arrayは、機械学習や画像処理などに必須の行列計算に必須の配列です。n x m配列を簡単に記述でき、一般の変数を扱うように行列同士の四則演算、スカラー演算ができます。

Pythonの配列 まとめ

まとめ

  • Pythonの配列には、リスト型、辞書型、タプル型、numpy.array型がある
  • リスト型は、要素に数字でアクセスし、要素の追加・修正・削除が可能
  • 辞書型は、要素にキーでアクセスし、要素の追加・修正・削除が可能だがソートができない
  • タプル型は、要素が固定で変更不可。「リストのリスト」のような型で、処理は高速
  • numpy.arrayは行列計算が簡単にできる