NumPy 初心者で使わないけど知っておいてもいい。

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)

雑感

宝の持ち腐れ

コメント

タイトルとURLをコピーしました