用矩阵遍历字典
Iterate through a dictionary with matrix
我有这 2 个矩阵:
x = np.matrix("1 2 3; 4 5 6")
y = np.matrix("7 8 9; 10 11 12")
...然后我将它们放入字典
d = {"a" : x, "b": y}
现在我想提取矩阵中具有相同位置的值,像这样:1,7...2,8...3,9...等等直到 6,12 (预期输出)。
我只能手动完成,像这样:
[value[0,0] for value in d.values()]
我正在尝试为此构建一个循环,但未能成功。
有人可以帮帮我吗?
您可以这样做:
values = zip(*d.values()) # gives [([1, 2, 3], [7, 8, 9]), ([4, 5, 6], [10, 11, 12])]
pairs = []
for value in values:
pairs.extend(zip(*value)) #adds (1, 7), (2, 8), ... to pairs list
for pair in pairs:
print(pair)
输出:
(1, 7)
(2, 8)
(3, 9)
(4, 10)
(5, 11)
(6, 12)
我有这 2 个矩阵:
x = np.matrix("1 2 3; 4 5 6")
y = np.matrix("7 8 9; 10 11 12")
...然后我将它们放入字典
d = {"a" : x, "b": y}
现在我想提取矩阵中具有相同位置的值,像这样:1,7...2,8...3,9...等等直到 6,12 (预期输出)。
我只能手动完成,像这样:
[value[0,0] for value in d.values()]
我正在尝试为此构建一个循环,但未能成功。
有人可以帮帮我吗?
您可以这样做:
values = zip(*d.values()) # gives [([1, 2, 3], [7, 8, 9]), ([4, 5, 6], [10, 11, 12])]
pairs = []
for value in values:
pairs.extend(zip(*value)) #adds (1, 7), (2, 8), ... to pairs list
for pair in pairs:
print(pair)
输出:
(1, 7)
(2, 8)
(3, 9)
(4, 10)
(5, 11)
(6, 12)