レッスン1 / 5問目

『ユニバーサル関数とは』

このレッスンではユニバーサル関数について学習していきましょう。

ユニバーサル関数とは

ユニバーサル関数とはndarrayに対して要素ごとに何らかの処理を行った結果をndarrayで返す関数です。
例えば以下のnp.abs()はndarrayの絶対値を返すユニバーサル関数です。

  1. arr1 = np.array([-1, -2, -3])
  2. arr2 = np.abs(arr1)
  3. print(arr2)
[1 2 3]    # arr1の絶対値の配列を返す

上記のように配列の全ての要素に対して処理を行いその配列を返す関数がユニバーサル関数です。 NumPyでは他にも様々な分野のユニバーサル関数が用意されており、以下のような分野の関数があります。

  • 数学
  • ビット演算
  • 比較

例えば数学の関数では指数・対数や三角関数(sin, cos, tan)などのユニバーサル関数も用意されています。
ちなみにユニバーサル関数は universal function を省略してufuncとも呼ばれます。(以降の本文でもユニバーサル関数という表現とufuncという表現の両方を使います。)

もう一つユニバーサル関数の例を見ていきましょう。以下のnp.add()は引数に受け取ったndarrayの和を返す関数です。

  1. arr1 = np.array([1, 2, 3])
  2. arr2 = np.array([4, 5, 6])
  3. arr3 = np.add(arr1, arr2)
  4. print(arr3)
[5 7 9]    # arr1とarr2の和が返される

arr1とarr2の対応する要素同士の和が返されました。

単項ufuncと2項ufunc

ユニバーサル関数には、引数に配列を一つ受け取る単項ufuncと、引数に配列を二つ受け取る二項ufuncがあります。上記のユニバーサル関数の例ではnp.abs()が単項ufuncであり、np.add()が二項ufuncとなります。

基本的な算術演算

ではここからは、具体的にユニバーサル関数を見ていきましょう。
以下は四則演算などの基本的な算術演算を行うユニバーサル関数です。

ufunc説明
np.add加算
np.subtract減算
np.multiply乗算
np.divide除算
np.floor_divide整数除算
np.powerべき乗
np.mod剰余

使い方に関しては上記で示した例題と同じで、引数に配列を渡します。

また、当サイトでは一つのレッスンにおいて情報量が多くならないように、適切な情報量となることを心がけていますが、ユニバーサル関数は種類が多いため、以降のレッスンでも上記のように表形式で列挙します。しかしこれらを全て暗記する必要はありませんので、このようなユニバーサル関数があるということだけ認識しておいてください。

まとめ

このレッスンではユニバーサル関数の概要と基本的な算術演算を行うユニバーサル関数について学習しました。

以下にこのレッスンの内容をまとめます。

  • ユニバーサル関数とはndarrayに対して要素ごとに何らかの処理を行った結果をndarrayで返す関数。
  • ユニバーサル関数には単項ufuncと二項ufuncがある

ではこのレッスンは以上となります。演習課題にチャレンジしましょう。

Lesson1

ユニバーサル関数を用いてarr1にarr2を乗算した配列を出力してください。

Lesson2

ユニバーサル関数を用いてarr2からarr1を整数除算した配列を出力してください。

Last updated:2019/10/30

[ 4 10 18]
[4 2 2]
  1. import numpy as np

  2. arr1 = np.array([1, 2, 3])
  3. arr2 = np.array([4, 5, 6])

  4. # 1. arr1にarr2を乗算した配列を出力してください。

  5. arr3 = np.multiply(arr1, arr2)
  6. print(arr3)

  7. # 2. arr1からarr2を整数除算した配列を出力してください。

  8. arr4 = np.floor_divide(arr2, arr1)
  9. print(arr4)
main.py
設定
g
n
i
d
a
o
L