[Python]配列(Array)の要素ごとに値を掛け算するには?

python

どうも、ちょげ(@chogetarou)です。

配列(Array)の要素ごとに特定の値を掛け算する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

List(リスト)とArray.arrayの場合

リスト(list)もしくはArray.arrayの要素ごとに特定の値を掛け算する方法は、4つあります。

[]

1つ目は、[]を使う方法です。

まず、[]をリストもしくはArray.arrayに代入します。

そして、[]内でリストもしくはArray.arrayをforループします。

ループ処理でリストもしくはArray.arrayの要素と値を掛け算します。

list = [i * value for i in list]
#tは型、valueは値
array = array.array('t', [i * value for i in array])

上記の[]は、配列の要素ごとに値を掛け算した新しいリストもしくはArray.arrayを生成します。

使用例

numbers = [1, 2, 3, 4, 5]    

numbers = [i * 5 for i in numbers]

print(numbers) #[5, 10, 15, 20, 25]
import array

numbers = array.array('i', [1, 2, 3, 4, 5])

numbers = array.array('i', [i * 3 for i in numbers])
    
print(numbers) #array('i', [3, 6, 9, 12, 15])

append()

2つ目は、append()を使う方法です。

まず、新しいListもしくはArray.arrayを用意します。

new_array = []
new_array = array.array('t') #tは型

そして、要素ごとに掛け算するListもしくはArray.arrayをforループします。

ループ処理で、用意したListもしくはArray.arrayからappend()を呼び出します。

append()の引数で、ループしたListもしくはArray.arrayの要素に特定の値を掛け算します。

for i in array:
    new_array.append(i * value)

上記のforループは、用意したListもしくはArray.arrayに、ループしたListの要素ごとに値を掛け算したListもしくはArray.arrayを格納します。

使用例

numbers = [1, 2, 3, 4, 5]

new_numbers = []

for i in numbers:
    new_numbers.append(i * 3)
    
print(new_numbers) #[3, 6, 9, 12, 15]
import array

numbers = array.array('i', [1, 2, 3, 4, 5])

new_numbers = array.array('i')

for i in numbers:
    new_numbers.append(i * 5)
    
print(new_numbers) #array('i', [5, 10, 15, 20, 25])

pandasのseries

3つ目は、pandasパッケージのseriesを使う方法です。

まず、Pandasパッケージをインポートします。

import pandas as pd

次に、リスト(もしくはArray.array)からpandasのSeriesを生成します。

s = pd.Series(array)

そして、Seriesの変数に特定の値を掛け、結果をリスト(もしくはArray.array)に変換します。

Seriesから変換したリスト(もしくはArray.array)を、元のリスト(もしくはArray.array)に代入します。

list = (s * value).tolist() #valueは掛ける値
#tは型、valueは値
array = array.array('t', s * value)

ここまでの処理で、リスト(もしくはArray.array)の要素ごとに特定の値が掛けられます。

使用例

import pandas as pd

numbers = [1, 2, 3, 4, 5]    

s = pd.Series(numbers)

numbers = (s * 4).tolist()
    
print(numbers) #[4, 8, 12, 16, 20]
import array
import pandas as pd

numbers = array.array('i', [1, 2, 3, 4, 5])

new_numbers = pd.Series(numbers)

numbers = array.array('i', new_numbers * 5)
    
print(numbers) #array('i', [5, 10, 15, 20, 25])

numpy配列

4つ目は、numpy配列を使う方法です。

まず、numpyをインポートします。

import numpy as np

次に、リスト(もしくはArray.array)からnumpy配列を生成します。

new_array = np.array(array)

そして、numpy配列の変数に特定の値を掛け、掛けた結果をリスト(もしくはArray.array)に変換します。

numpy配列から変換したリスト(もしくはArray.array)を、元のリスト(もしくはArray.array)に代入します。

list = (new_array * value).tolist() #valueは掛ける値
#tは型、valueは値
array = array.array('t', new_array * value)

ここまでの処理で、リスト(もしくはArray.array)の要素ごとに特定の値が掛けられます。

使用例

import numpy as np

numbers = [1, 2, 3, 4, 5]    

new_numbers = np.array(numbers)

numbers = (new_numbers * 5).tolist()
    
print(numbers) #[5, 10, 15, 20, 25]
import array
import numpy as np

numbers = array.array('i', [1, 2, 3, 4, 5])

new_numbers = np.array(numbers)

numbers = array.array('i', new_numbers * 10)
    
print(numbers) #array('i', [10, 20, 30, 40, 50])

Numpy配列の場合

numpy配列(Array)の要素ごとに特定の値を掛け算するには、「*」を使います。

具体的には、numpy配列と値を「*」で掛け算します。

掛け算した結果を、numpy配列に代入します。

array = array * value

「*」で値を掛けることで、Numpy配列の要素ごとに特定の値が掛けられます。

使用例

import numpy as np

nums = np.array([[1, 2, 3],  
                [4, 5, 6], 
                [7, 8, 9],] )

nums = nums * 10

print(nums)
#[[10 20 30]
# [40 50 60]
# [70 80 90]]

まとめ

リスト(List)の要素ごとに特定の値を掛け算するには、次の4つの方法のいずれかを使います。

  • []を使う方法
  • append()を使う方法
  • pandasのシリーズを使う方法
  • numpy配列を使う方法

Numpy配列の要素ごとに値を掛け算するには、「*」を使います。

コメント

タイトルとURLをコピーしました