NumPy ユニバーサル関数と集合関数

Numpy ndarray配列の各要素に対して演算した結果を返す関数の中で、ユニバーサル関数と集合関数を TRY してみた。

ユニバーサル関数

・引数が1つ
 np.abs()  要素の絶対数を返す 
  np.exp() 要素のe(自然対数の底)のべき乗を返す
 np.sqrt() 要素の平方根を返す

・引数が2つ
 np.add()  要素同士の和を返す
 np.subtract() 要素同士の差を返す
 np.maximum() 要素同士の最大値を格納した配列を返す

import numpy as np

arr = np.array([4, -9, 16, 4, 20])
arr_2 = np.array([6, 1, 24, 0, 300])

# 要素の絶対を返す
arr_abs = np.abs(arr)
print(arr_abs)

# 要素のe(自然対数の低)のべき乗
print(np.exp(arr_abs))

# 平方根
print(np.sqrt(arr_abs))

# 2つの要素同士の和
print(np.add(arr_abs, arr_2))

# 2つの要素の差
print(np.subtract(arr_abs, arr_2))

# 要素同士の最大値を格納
print(np.maximum(arr_abs, arr_2))
# 実行結果

[ 4  9 16  4 20]
[5.45981500e+01 8.10308393e+03 8.88611052e+06 5.45981500e+01
 4.85165195e+08]
[2.         3.         4.         2.         4.47213595]
[ 10  10  40   4 320]
[  -2    8   -8    4 -280]
[  6   9  24   4 300]

集合関数

1) np.unique  配列要素から重複を取り除いてソート
2) np.union1d(x,y) 配列xとyのうち一方に存在する要素を取り出しソート
3) np.intersect1d(x,y) 配列xとyのうち共通する要素を取り出しソート
4) np.setdiff1d(x,y) 配列xとyのうち共通する要素をxから取り除いてソート

※2) = 和集合、3) = 積集合、4) = 差集合

import numpy as np

arr1 = [3,7,8,9,10,3,7]
arr2 = [3,6,8,1,7]

# 重複を取り除く
print(np.unique(arr1))

# 和集合
print(np.union1d(arr1,arr2))

# 積集合
print(np.intersect1d(arr1,arr2))

# 差集合
print(np.setdiff1d(arr1,arr2))
# 実行結果

[ 3  7  8  9 10]
[ 1  3  6  7  8  9 10]
[3 7 8]
[ 9 10]

今回の"note"を気に入って頂けましたら、是非サポートをお願いいたします!