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)
雑感
宝の持ち腐れ

コメント