Python NumPy / ndarray のメソッド #12

株式会社リュディアです。今回も NumPy についてまとめていきます。

前回までの NumPy / ndarray のメソッドについてのまとめへのリンクは以下を参考にしてください。

以下のリンクの内容を元にまとめを作っていきます。

今回も Calculation のメソッドをまとめていきます。今回は ptp(), sum(), cumsum() です。

最初は ptp() です。Peak-To-Peak の略で、配列 x が与えられたときに x.max() - x.min() の値を返します。つまり配列 x のもつ値の幅ですね。では以下の例を見てください。

import numpy as np

x = np.array([9, 10, 11, 12, 4, 2, 3, 1, 7, 6, 5, 8], np.int32)
y = x.reshape(3, 4)

print(y)
print(y.ptp())
print(y.ptp(axis=0))
print(y.ptp(axis=1))

#
# [[ 9 10 11 12]
#  [ 4  2  3  1]
#  [ 7  6  5  8]]
#
# 11
#
# [ 5  8  8 11]
# [3 3 3]
#

最初の y.ptp() は配列全体の最大値 12 と最小値 1 の差である 11 を返しています。次の y.ptp (axis=0) は列ごとに最大値と最小値の差を返しています。最後の y.ptp (axis=1) は行ごとに最大値と最小値の差を返しています。簡単ですね。

次は sum() です。名前から容易に予測可能なように全要素の加算結果を返します。以下の例を見てください。

import numpy as np

x = np.array([9, 10, 11, 12, 4, 2, 3, 1, 7, 6, 5, 8], np.int32)
y = x.reshape(3, 4)

print(y)
print(y.sum())
print(y.sum(axis=0))
print(y.sum(axis=1))

#
# [[ 9 10 11 12]
#  [ 4  2  3  1]
#  [ 7  6  5  8]]
#
# 78
#
# [20 18 19 21]
#
# [42 10 26]
#

ptp() のときと同様、y.sum() は全体の加算y.sum (axis = 0) は列ごとの加算y.sum (axis = 1) 行ごとの加算を計算します。

最後に cumsum() です。累積和を返します。まず以下のサンプルを見てください。

import numpy as np

x = np.array([9, 10, 11, 12, 4, 2, 3, 1, 7, 6, 5, 8], np.int32)
y = x.reshape(3, 4)

print(y)
print(y.cumsum())

#
# [[ 9 10 11 12]
#  [ 4  2  3  1]
#  [ 7  6  5  8]]
#
# [ 9 19 30 42 46 48 51 52 59 65 70 78]
#

cumsum() の戻り値が何を意味しているかわかりますか?

9 = 9
9 + 10 = 19
9 + 10 + 11 = 30
9 + 10 + 11 + 12 = 42
9 + 10 + 11 + 12 + 4 = 46
...

行列の先頭から各要素までの加算結果が戻り値になっていますね。cumsum() は cumulative sum の略です。cumulative は累積的なという意味です。

NumPy / ndarray のメソッドに関するまとめの続きは以下からどうぞ。

では、ごきげんよう。


いいなと思ったら応援しよう!