学習内容
- セット型
- デイクショナリ型
- リスト・タプル・セットの相互変換
- ndarray型
- Pandas(DataFrame型)
セット型
リストやタプルと同様に複数のデータを格納することができるデータ型。以下の特徴がある。
- 同じ値をもつデータを重複して保存することはできない
- 格納されている複数のデータには順序づけがされない
-
{}
によって定義する。
記述例
a = {1,0,2,9,8,3,7,5,4,6}
print('a = ',a)
b = {2,4,4,6,5,2,1,0,8,7,9,3,6}
print('b = ', b)
実行結果
a = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
b = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
実行結果のようにどのような順序でデータを指定してもソートされて出力される。
ディクショナリ型
リストやタプル、セットと同様に複数のデータを格納することができるデータ型。以下の特徴がある。
- 複数のデータにそれぞれ異なるラベルをつけてデータを入れる。
-
{ラベル1:データ1, ラベル2:データ2, ラベル3:データ3}
のように定義する。 -
keys()
によってラベルの一覧を、items()
によって値の一覧を得られる。
リストやタプルでは複数のデータをインデックスで指定していたが、ディクショナリではラベルによって指定する。
記述例
c = {'l1':12, 'l2':45, 'l3':36, 'l4':58}
print('c = ', c)
print("c['l2'] = ", c['l2'])
print("c['l4'] = ", c['l4'])
print(c.keys())
print(c.values())
実行結果
c = {'l1': 12, 'l2': 45, 'l3': 36, 'l4': 58}
c['l2'] = 45
c['l4'] = 58
dict_keys(['l1', 'l2', 'l3', 'l4'])
dict_values([12, 45, 36, 58])
リスト、タプル、セットの相互変換
リスト、タプル、セットはそれぞれメソッドlist()
、tuple()
、set()
を用いて相互変換可能である。
記述例
# 相互変換を利用してリストから重複データを削除するプログラム
d = [0,2,6,4,2,8,0,2]
e = list(set(d))
print('e = ', e)
実行結果
e = [0, 2, 4, 6, 8]
ndarray型
代表的な数値計算パッケージのNumpy
で使用する基本データ型。
記述例
# ndarray型の作成
import numpy
f = [0, 1, 2, 3]
g = numpy.array(f) # リストからndarray型を作成
print('g = ', g)
h = [1, 2]
i = [2, 3]
j = [3, 4]
k = numpy.array([h, i, j]) # 二次元のndarray型を作成
print('k = ', k)
l = numpy.array(a, dtype = numpy.float16) # データ型を指定してndarrayを作成
print('l = ', l)
実行結果
g = [0 1 2 3]
k = [[1 2]
[2 3]
[3 4]]
l = [0. 1. 2. 3.]
また、ndarray型のデータやリストに対して、Numpyに用意されている関数を使うと様々な数値演算ができる。代表的な物を以下に紹介する。
import numpy
m = numpy.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
n = numpy.median(m) # 中央値
o = numpy.mean(m) # 平均値
p = numpy.std(m) # 標準偏差
q = numpy.var(m) # 分散
print(n)
print(o)
print(p)
print(q)
実行結果
4.5
4.5
2.8722813232690143
8.25
Pandas
基本データ型
-
DataFrame
型(表データを表す) -
Seriez
型(行または列のデータを表す)
DataFrame型
以下のように作成する。
記述例
import pandas
r = pandas.DataFrame([1, 11.1], [2, 22.2], [3, 33.3])
colums
、index
でそれぞれ列、行の添字を指定できる。
記述例
r.colums = ['C1', 'C2']
r.index = ['A', 'B', 'C']
インデックス型と同じように、添字を指定して列のデータを取得できる。
記述例
s = r['C1'] # 一列目のデータだけを取り出す
t = s['A'] # 一列目、一行目のデータを取り出す