我想通過linalg.solve(A,b)求解方程組,解決線性矩陣方程或來自scipy.org的線性標量方程組。具體來說,我有兩個字典,dict1和dict1,爲了使用上面的腳本,我需要將它們轉換爲矩陣。從字典中創建一定大小的矩陣
food = ['fruits', 'vegetables', 'bread', 'meat']
frequency = ['daily', 'rarely']
consumptions = {'fruits': {'daily': 6, 'rarely': 4}, 'vegetables': {'daily': 8, 'rarely': 6}, 'bread': {'daily': 2, 'rarely': 1}, 'meat': {'daily': 2, 'rarely': 1}}
dict1 = {}
for f in food: #type of food
for j in food:
dict2 = {}
total = 0.
for q in frequency:
dict2.update({q:(consumptions.get(j).get(q)*consumptions.get(f).get(q))})
key = f+'v'+j #comparing the different foods
dict1.update({key:dict2})
這給了我:
{'breadvbread': {'daily': 4, 'rarely': 1},
'breadvfruits': {'daily': 12, 'rarely': 4},
'breadvmeat': {'daily': 4, 'rarely': 1},
'breadvvegetables': {'daily': 16, 'rarely': 6},
'fruitsvbread': {'daily': 12, 'rarely': 4},
'fruitsvfruits': {'daily': 36, 'rarely': 16},
'fruitsvmeat': {'daily': 12, 'rarely': 4},
'fruitsvvegetables': {'daily': 48, 'rarely': 24},
'meatvbread': {'daily': 4, 'rarely': 1},
'meatvfruits': {'daily': 12, 'rarely': 4},
'meatvmeat': {'daily': 4, 'rarely': 1},
'meatvvegetables': {'daily': 16, 'rarely': 6},
'vegetablesvbread': {'daily': 16, 'rarely': 6},
'vegetablesvfruits': {'daily': 48, 'rarely': 24},
'vegetablesvmeat': {'daily': 16, 'rarely': 6},
'vegetablesvvegetables': {'daily': 64, 'rarely': 36}}
我想,因爲我使用的4種類型的食物,這種轉換爲4×4矩陣。我沒有把dict2作爲一次我想出如何用一本字典轉換爲矩陣,我可以做另一個,但如果你需要它,我可以更新。
我是新來的Python,想玩玩字典和矩陣求解:)。使用數組很容易,但是現在我想看看如果我有字典,該怎麼辦。
你能舉一個例子來理解你的意思嗎?將它轉換爲4x4矩陣?你試圖解決什麼系統? –
在進行排列組合時,應考慮使用「V」或下劃線以提高可讀性。 – kmario23