Pythonの配列についてまとめています。
Pythonの配列は、リスト、辞書型、タプル、nampy.array
Pythonの配列には、リスト型、辞書型、タプル、numpy.arrayと複数の型があります。
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の辞書型(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のタプル 初期化は括弧 ( )
タプルは、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
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は行列計算が簡単にできる