Pynote

Python、機械学習、画像処理について

numpy - 総和、総乗、累積和、累積積

総和、総乗、累積和、累積積

名前 説明
numpy.sum 総和
numpy.prod 総乗
numpy.cumsum 累積和
numpy.cumprod 累積積
numpy.nansum 総和 (NaN は1として計算)
numpy.nanprod 総乗 (NaN は1として計算)
numpy.nancumsum 累積和 (NaN は1として計算)
numpy.nancumprod 累積積 (NaN は1として計算)

numpy.sum

総和を計算する。

関数

numpy.sum(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>)

例 axis を指定しない場合

axis を指定しない場合は全要素に関して、総和を計算する。


a = np.array([[3,  3, -1],
              [2, -3,  0],
              [1,  2,  1]])

b = np.sum(a)
print(b)  # 8

例 axis を指定した場合

axis を指定した場合は、その方向で総和をとる。



a = np.array([[3,  3, -1],
              [2, -3,  0],
              [1,  2,  1]])

b = np.sum(a, axis=0)
print(b)  # [6 2 0]


a = np.array([[3,  3, -1],
              [2, -3,  0],
              [1,  2,  1]])

b = np.sum(a, axis=1)
print(b)  # [ 5 -1  4]

numpy.prod

総乗を計算する。

関数

numpy.prod(a, axis=None, dtype=None, out=None, keepdims=<no value>, initial=<no value>)

a = np.array([[3,  3, -1],
              [2, -3,  0],
              [1,  2,  1]])

b = np.prod(a)
print(b)  # 0

b = np.prod(a, axis=0)
print(b)
# [  6 -18   0]

b = np.prod(a, axis=1)
print(b)
# [-9  0  2]

numpy.cumsum

累積和を計算する。

関数

numpy.cumsum(a, axis=None, dtype=None, out=None)

a = np.array([[3,  3, -1],
              [2, -3,  0],
              [1,  2,  1]])

b = np.cumsum(a)
print(b)  # [3 6 5 7 4 4 5 7 8]

b = np.cumsum(a, axis=0)
print(b)
# [[ 3  3 -1]
#  [ 5  0 -1]
#  [ 6  2  0]]

b = np.cumsum(a, axis=1)
print(b)
# [[ 3  6  5]
#  [ 2 -1 -1]
#  [ 1  3  4]]

numpy.cumprod

累積積を計算する。

関数

numpy.cumprod(a, axis=None, dtype=None, out=None)

a = np.array([[3,  3, -1],
              [2, -3,  0],
              [1,  2,  1]])

b = np.cumprod(a)
print(b)  # [  3   9  -9 -18  54   0   0   0   0]

b = np.cumprod(a, axis=0)
print(b)
# [[  3   3  -1]
#  [  6  -9   0]
#  [  6 -18   0]]

b = np.cumprod(a, axis=1)
print(b)
# [[ 3  9 -9]
#  [ 2 -6  0]
#  [ 1  2  2]]

numpy.nansum

総和を計算する。NaN は1として計算する。

関数

numpy.nansum(a, axis=None, dtype=None, out=None, keepdims=<no value>)

numpy.nanprod

総乗を計算する。NaN は1として計算する。

関数

numpy.nanprod(a, axis=None, dtype=None, out=None, keepdims=<no value>)

numpy.nancumsum

累積和を計算する。NaN は1として計算する。

関数

numpy.nancumprod(a, axis=None, dtype=None, out=None)

numpy.nancumprod

累積積を計算する。NaN は1として計算する。

関数

numpy.nancumprod(a, axis=None, dtype=None, out=None)

min/max

名前 説明
numpy.minimum min(x_1, x_2) = \left\{
\begin{array}{ll}
x_1 & (x_1 \le x_2) \\
x_2 & otherwise\end{array}
\right.
numpy.maximum max(x_1, x_2) = \left\{
\begin{array}{ll}
x_1 & (x_1 \ge x_2) \\
x_2 & otherwise\end{array}
\right.
numpy.fmin min(x_1, x_2) = \left\{
\begin{array}{ll}
x_1 & (x_1 \le x_2) \\
x_2 & otherwise\end{array}
\right.
numpy.fmax max(x_1, x_2) = \left\{
\begin{array}{ll}
x_1 & (x_1 \ge x_2) \\
x_2 & otherwise\end{array}
\right.

numpy.minimum

要素ごとに値が小さいほうを返す。

関数

numpy.minimum(x1, x2)

a = np.array([ 2, -4, -4,  4, -5])
b = np.array([-4,  0,  0, -2,  1])

c = np.minimum(a, b)
print(c)  # [-4 -4 -4 -2 -5]

numpy.maximum

要素ごとに値が大きいほうを返す。

関数

numpy.maximum(x1, x2)

a = np.array([ 2, -4, -4,  4, -5])
b = np.array([-4,  0,  0, -2,  1])

c = np.maximum(a, b)
print(c)  # [2 0 0 4 1]

numpy.fmin

要素ごとに値が小さいほうを返す。

関数

numpy.fmin(x1, x2)

numpy.fmax

要素ごとに値が大きいほうを返す。

関数

numpy.fmax(x1, x2)