行列演算に関する質問です。下記のリストがあります。
list = [[7, 2, 1, 3], [15, 4, 1, 5], [20, 5, 1, 10]]
各行の要素を各行の先頭の値と末尾の値を足した合計で除算した後100倍にしたいです。
[7, 2, 1, 3] であれば 先頭の値が7,末尾の値が3なので、合計が10となり
各要素の値は10で割られて
0.7, 0.2, 0.1, 0.3 となります。
これを100倍して
70, 20, 10, 30というような計算処理をしたいです。
が思ったように計算ができません。
正しいロジックを教えてください。
Python
1list = [[7, 2, 1, 3], [15, 4, 1, 5], [20, 5, 1, 10]] 2 3calc_list = [[0]*4]*3 4print(f"calc_list : {calc_list}") 5for i in range(3): 6 for j in range(4): 7 calc_list[i][j] = ( list[i][j] / (list[i][0] + list[i][3]) )*100 8print(f"calc_list : {calc_list}")
実行結果
calc_list : [[80.0, 16.666666666666664, 3.3333333333333335, 20.0], [80.0, 16.666666666666664, 3.3333333333333335, 20.0], [80.0, 16.666666666666664, 3.3333333333333335, 20.0]]
期待する結果 calc_list : [[70.0, 0.20, 0.10, 0.30], [75.0, 0.20, 0.05, 0.25], [66.6666, 16.6666, 3.3333, 33.3333]]
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/06 08:19