どうも、ちょげ(@chogetarou)です。
配列(Array)の累乗和を取得する方法を紹介します。
方法
リスト(List)
リスト(list)の累乗和を取得する方法は、2つあります。
forループ
1つは、forループを使う方法です。
まず、sum()を呼び出します。
sum()の引数に[]を指定します。
そして、[]内でリスト(List)をforループします。
ループ処理で、左辺に要素、右辺に乗数を指定した「**」で演算します。
result = sum([i ** N for i in list])
上記のsum()は、forループしたリスト(List)の累乗和を返します。
使用例
numbers = [1, 2, 3, 4, 5]
#3の累乗和を取得
result = sum([i ** 3 for i in numbers])
print(result) #225
map()
もう1つは、map()を使う方法です。
まず、sum()を呼び出します。
sum()の引数でmap()を呼び出します。
そして、map()の第1引数に引数を1つ持つラムダ式、第2引数にリストを指定します。
ラムダ式で、「**」の左辺にラムダ式の引数、右辺に乗数を記述した式を返します。
result = sum(map(lambda x: x ** N, list))
上記のsum(map())は、map()の第2引数のリストの累乗和を返します。
使用例
numbers = [1, 2, 3, 4, 5]
#4の累乗和を取得
result = sum(map(lambda x: x ** 4, numbers))
print(result) #979
Array.array
Array.arrayの累乗和を取得する方法は、2つあります。
forループ
1つは、forループを使う方法です。
まず、sum()を呼び出します。
sum()の引数に[]を指定します。
そして、[]内でArray.arrayをforループします。
ループ処理で、左辺に要素、右辺に乗数を指定した「**」で演算します。
result = sum([i ** N for i in array])
上記のsum()は、forループしたArray.arrayの累乗和を返します。
使用例
import array
numbers = array.array('i', [1, 2, 3, 4, 5])
result = sum([i ** 3 for i in numbers])
print(result) #225
map()
もう1つは、map()を使う方法です。
まず、sum()を呼び出します。
sum()の引数でmap()を呼び出します。
そして、map()の第1引数に引数を1つ持つラムダ式、第2引数にArray.arrayを指定します。
ラムダ式で、「**」の左辺にラムダ式の引数、右辺に乗数を記述した式を返します。
result = sum(map(lambda x: x ** N, array))
上記のsum(map())は、map()の第2引数のArray.arrayの累乗和を返します。
使用例
import array
numbers = array.array('i', [1, 2, 3, 4, 5])
result = sum(map(lambda x: x ** 4, numbers))
print(result) #979
Numpy配列
Numpy配列(Array)の累乗和を取得する方法は、2つあります。
sum()メソッド
1つは、sum()メソッドを使う方法です。
まず、左辺にNumpy配列、右辺に乗数を指定した「**」で演算します。
そして、「**」の演算結果からsum()メソッドを呼び出します。
result = (array ** power).sum()
上記のsum()メソッドは、「**」の左辺に指定したNumpy配列の累乗和を返します。
使用例
import numpy as np
nums = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9],] )
result = (nums ** 3).sum()
print(result) #2025
numpy.sum()
もう1つは、numpy.sum()を使う方法です。
まず、numpyからsum()を呼び出します。
そして、numpy.sum()の引数に、左辺にNumpy配列、右辺に乗数を記述した「**」を指定します。
result = np.absolute(array).min()
上記のnumpy.sum()は、「**」の左辺に記述したNumpy配列の累乗和を返します。
使用例
import numpy as np
nums = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9],] )
result = np.sum(nums ** 2)
print(result) #285
まとめ
リスト(List)とArray.arrayの累乗和を取得する方法は、次の2つです。
- forループを使う方法
- map()を使う方法
Numpy配列の累乗和を取得する方法は、次の2つです。
- sum()メソッドを使う方法
- numpy.sum()を使う方法
コメント