Я хочу создать словарь, который содержит информацию в трех ndarrays того же измерения, таких как:
import numpy as np
name = np.array(['a', 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b', 'c', 'c', 'c', 'c'])
pid = np.array([1, 1, 2, 2, 2, 3, 4, 4, 4, 5, 5, 6, 7, 7, 7, 8])
dev = np.array([11, 12, 21, 22, 23, 31, 11, 42, 31, 51, 52, 61, 71, 72, 73, 81])
Желаемый вывод должен быть что-то вроде:
alldevs = {
'a': {
1: [11, 12]
2: [21, 22, 22]
3: [31]
}
'b': {
4: [11, 42, 31],
5: [51, 52],
6: [61]
}
'c': {
7: [71, 72, 73],
8: [81]
}
}
Пока что у меня есть:
allDevs = {a:{b:[c]} for a,b,c in zip(name,pid,dev)}
, который дает только последнюю из каждой группы, но не группирует все значения в dev
, которые разделяют name
и pid
:
{'a': {3: [31]}, 'b': {6: [61]}, 'c': {8: [81]}}
Я нашел это Создал вложенный словарь из трех отдельных списков , но он не выполняет то, что я хочу.