導入
表のようなデータは、行と列を持つ2次元配列で表せます。また「条件に合う要素だけ取り出す」操作は、分析で頻繁に使います。
説明
リストのリストを渡すと2次元配列になります。.reshape() で形を変えることもできます。
import numpy as np
m = np.array([[1, 2, 3],
[4, 5, 6]])
print(m)
print("形:", m.shape) # (2, 3) = 2行3列
print("列ごとの合計:", m.sum(axis=0)) # 縦方向
print("行ごとの合計:", m.sum(axis=1)) # 横方向
axis=0 は「縦方向(列ごと)」、axis=1 は「横方向(行ごと)」の集計です。どちらに潰すか、と覚えると分かりやすいです。
配列に条件を書くと、各要素が条件を満たすかの True/False 配列が返ります。それを [] に入れると、条件に合う要素だけが取り出せます。
import numpy as np
data = np.array([15, 42, 8, 23, 4, 16])
print(data > 20) # 各要素が20より大きいか
print(data[data > 20]) # 20より大きい要素だけ
print("20超の個数:", (data > 20).sum()) # Trueの数を数える
(data > 20).sum() は、True を 1 として数えるので「条件を満たす個数」になります。よく使うテクニックです。
やってみよう
data[data < 10] で10未満の要素だけを取り出しましょう。条件を data % 2 == 0(偶数)に変えると、偶数だけ取り出せます。
演習
np.array([3, 18, 25, 7, 40, 12]) から、20以上の要素だけを取り出して表示してください。
ヒント1を見る
data[data >= 20] と書きます。