NumPyは機械学習でよく使うと目にしますが、別に機械学習やりませんので。
NumPyって結局なにに使うかよくわからない
というのが個人的な感想です。
ですが NumPy には以下の特徴があるようです。
- for文よりも早い(と言われている)
- for文を書かなくていい
- 配列同士の計算が簡単
なにに使うかよくわからないけど、知っておくと、なにかの場面で使えそうなきがするのが numpy です。なので結論としては「知っておいて損はない」と思います。
NumPyのサンプルコード
import numpy as np # 1次元配列 ary = np.asarray([1,2,3]) print(ary) # 1次元配列の型指定 ary = np.asarray([1,2,3], dtype=np.str) print(ary) # 1次元配列の型変更 ary = ary.astype(np.int) print(ary) # 多次元配列の作り方 ary = np.asarray([[1,2,3], [4,5,6]]) print(ary) print(ary.shape) # (2,3) 2個の配列 - 要素3個 print("\n") # numpy特殊な配列 ary = np.zeros((2,3)) # 要素が全て0の多次元配列 print(ary) ary = np.ones((2,3)) # 要素が全て1の多次元配列 print(ary) ary = np.random.rand(2, 3) # 0から1のランダムの配列 print(ary) # numpyの配列の計算 ary = np.asarray([[1,2,3], [4,5,6]]) ary = ary * 3 print(ary) # [[3,6,9], [12,15,18]] ary = np.asarray([[1,2,3], [4,5,6]]) ary = ary + 3 print(ary) # numpy - 配列同士の計算 a = np.asarray([[1,2,3], [4,5,6]]) b = np.asarray([[1,2,3], [4,5,6]]) ary = a + b print(ary) # [[2,4,6],[8,10,12]] #「統計」 # 平均 ary = np.random.rand(100) average = np.mean(ary) print(average) ary = np.asarray([4,5,10]) average = np.mean(ary) print(average) # 6.33 ary = np.asarray([[2,5,6],[6,10,100]]) average = np.mean(ary) print(average) # 二次元は自動的に計算される # 最大値 ary = np.asarray([[2,5,6],[6,10,100]]) ary_max = np.max(ary) print(ary_max) # 100 # 最小値 ary = np.asarray([[2,5,6], [10,20,40]]) ary_min = np.min(ary) print(ary_min) # 2 # 合計 ary = np.sum([[2,2,2],[2,2,2]]) ary_sum = np.sum(ary) print(ary_sum) # 12 # どのむきに統計をとるか ary = np.asarray([[2,2,2],[2,2,2]]) ary_sum = np.sum(ary, axis=0) print(ary_sum) # 4,4,4 # べき根 a = np.sqrt(2) b = np.sqrt(3) c = np.sqrt(4) print(a,b,c) ary = np.asarray([[9,12,16],[2,3,4]]) ary_sqrt = np.sqrt(ary) print(ary_sqrt) # ランダムに取得 np_random = np.random.choice(['fkoji','taguti','yamamoto']) print(np_random) # ランダムに取得 確率を指定 np_random_ratio = np.random.choice(['fkoji','taguti','yamamoto'], p=[0.90,0.05,0.05]) print(np_random_ratio) # numpyとlist内包表記 ary = np.asarray([i for i in range(10)]) print(ary) ary = np.asarray([i if i%2 == 0 else 0 for i in range(10)]) print(ary) ary = np.asarray([[2] * 5 for i in range(3)]) print(ary) # numpyとべき乗演算子 ary = np.asarray([20,30,40]) ans = ary ** (1/3) print(ans)
雑感
宝の持ち腐れ
コメント