python - 如何压缩numpy数组列表?
问题描述
我有一个 numpy 数组的字典:
{'data1': array([[0.16461831, 0.82400555],
[0.02958593, 0.483629 ],
[0.51268564, 0.07030046],
[0.17027816, 0.35304705]]),
'data2': array([[0.8292598 , 0.78136548],
[0.30389913, 0.69250432],
[0.66608852, 0.42237639],
[0.72678807, 0.40486951]]),
'data3': array([[0.45614633, 0.96677904],
[0.87066105, 0.75826116],
[0.39431988, 0.73041888],
[0.65685809, 0.65498308]])}
预期输出:
[([0.16461831, 0.82400555], [0.8292598 , 0.78136548], [0.45614633, 0.96677904]),
([0.02958593, 0.483629 ], [0.66608852, 0.42237639], [0.87066105, 0.75826116]),
([0.51268564, 0.07030046], [0.66608852, 0.42237639], [0.39431988, 0.73041888]),
([0.17027816, 0.35304705], [0.72678807, 0.40486951], [0.65685809, 0.65498308])]
但是当我尝试使用 zip 时:
list(zip(data.values()))
得到这个输出:
[(array([[0.16461831, 0.82400555],
[0.02958593, 0.483629 ],
[0.51268564, 0.07030046],
[0.17027816, 0.35304705]]),),
(array([[0.8292598 , 0.78136548],
[0.30389913, 0.69250432],
[0.66608852, 0.42237639],
[0.72678807, 0.40486951]]),),
(array([[0.45614633, 0.96677904],
[0.87066105, 0.75826116],
[0.39431988, 0.73041888],
[0.65685809, 0.65498308]]),)]
如何压缩numpy数组列表?
解决方案
采用
list(zip(*data.values())
输出:
[(array([0.16461831, 0.82400555]),
array([0.8292598 , 0.78136548]),
array([0.45614633, 0.96677904])),
(array([0.02958593, 0.483629 ]),
array([0.30389913, 0.69250432]),
array([0.87066105, 0.75826116])),
(array([0.51268564, 0.07030046]),
array([0.66608852, 0.42237639]),
array([0.39431988, 0.73041888])),
(array([0.17027816, 0.35304705]),
array([0.72678807, 0.40486951]),
array([0.65685809, 0.65498308]))]
推荐阅读
- vba - VBA excel-2010 listbox1.SelectedIndex 抛出错误
- javascript - Ajax成功函数下定义函数的运行延迟
- python - 将实数转换为二进制,反之亦然(在 Python 中)
- swift - searchBar 功能但 TableView 致命错误
- ngfor - 嵌套 ngFor 在大型数据集上的性能
- android - 如何检测 Android 设备的方向?
- c# - 无法找到 TFS 中构建定义的类型或命名空间错误
- javascript - 调试在 nginx 代理后面运行的 React App
- c# - Web 应用程序中的 EF 核心
- java - 在两个不同的端口上运行同一个 JBoss 服务器