あるリストを特定の場所に集計したいです。
識別用のアルファベットが異なるので、どの用に考えれば良いのでしょう?
データの0が'0'だったりしますが、どちらでも構いません。
# ルール1
1.縦列に沿った要素を、要素毎に結合する
例 A1+A2=A3
2.異なる要素(大きい方から小さい要素数を引く)
例 A3-B1=A2
3.最後に残った大きい要素を先頭リストに纏める
# ルール2
1.横列に沿った要素を、要素毎に結合する。
2.異なる要素(大きい方から小さい要素数を引く)
3.最後に残った大きい要素をリストに纏める
python
1 2 3l = [[0 for i in range(5)] for j in range(5)] 4 5 6# サンプル値を代入 7l[0][0]='C3' 8l[1][0]='C3' 9l[2][0]='C3' 10 11 12l[0][2]='A1' 13 14l[1][1]='A2' 15l[1][2]='A2' 16 17l[0][1]='B1' 18 19from pprint import pprint 20pprint(l) 21 22 23# 完成するデータ 24l=[['C3', 'B1', 'A1', 0, 0], 25 ['C3', 'A2', 'A2', 0, 0], 26 ['C3', 0, 0, 0, 0], 27 [0, 0, 0, 0, 0], 28 [0, 0, 0, 0, 0]] 29
求める結果1 イメージは↑
""" [['C9', 'A1', 'A3', 0, 0], ['0', '0', '0', 0, 0], ['0', 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] """
求める結果2 イメージは→
""" [[0, 0, 0, 0, 'C1'], [0, 0, 0, 0, 'A1'], [0, 0, 0, 0, 'C3'], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] """
#追記 コード
python
1 2# 完成するデータ 3l=[ 4 [3, 1, 1, 0, 0], 5 [3, 2, 2, 0, 0], 6 [3, 0, 0, 0, 0], 7 [0, 0, 0, 0, 0], 8 [0, 0, 0, 0, 0] 9 ] 10 11 12import numpy as np 13 14T=np.array(l) 15print(T) 16 17print(T.sum(axis=0)) 18print(T.sum(axis=1)) 19 20 21# 完成するデータ 22""" 23[[3 1 1 0 0] 24 [3 2 2 0 0] 25 [3 0 0 0 0] 26 [0 0 0 0 0] 27 [0 0 0 0 0]] 28[9 3 3 0 0] 29[5 7 3 0 0] 30""" 31 32
アルファベットがつくと、どれを計算するのか
分からないです。
npでアルファベット順に集計は可能でしょうか?
「どんなルールに従って、各項目の値を求めるのか」が示されていないので、意味不明です。 ちゃんと説明するか、質問を削除するかしてください。
回答1件
あなたの回答
tips
プレビュー