python - 在python中将所有列表值连接到一个数组

标签 python numpy dictionary concatenation

我想将 python 字典中的所有 numpy 数组(大小相同)连接到一个新数组。

dict = {'some_key_1':np.array([1,2,3,4]), 'some_key_2':np.array([2,3,4,5]), ...}

我希望看到的结果是:

result = np.array([[1,2,3,4],[2,3,4,5]])

最好的方法是什么?

编辑:Python 2 和 3 的解决方案似乎略有不同。接受的答案解决了 Python 3 的问题。

最佳答案

在 Python 3 中,您需要首先将 dict.values() 转换为列表。

The objects returned by dict.keys(), dict.values() and dict.items() are view objects. They provide a dynamic view on the dictionary’s entries, which means that when the dictionary changes, the view reflects these changes. (https://docs.python.org/3/library/stdtypes.html#typesmapping)

import numpy as np
data = {'some_key_1':np.array([1,2,3,4]), 'some_key_2':np.array([2,3,4,5])}
print(np.array(list(data.values())))
# [[1 2 3 4]
# [2 3 4 5]]

您将获得一个二维数组,其中的行按随机顺序排列(Python dict 是无序的)。

要获取一维数组,可以使用 np.concatenate :

print(np.concatenate(list(data.values())))
# [1 2 3 4 2 3 4 5]

如果顺序很重要,您可以使用元组列表或 OrderedDict而不是dict

关于python - 在python中将所有列表值连接到一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43806212/

相关文章:

python - 如何获取标签后的文字

Python2.7 到 Python3 Ubuntu 切换

python 列表控制增量

python - 使用 python 定位矩阵中的第 j-k 个元素

python - 如何将列表中的多个字典 append 到另一个包含 "inner"字典的特定部分的列表?

Python:如何将 { apple: "1", orange: "2"} 解析为字典?

python - 带有 Zeep 和 Python 的 SOAP 客户端中的 Bearer Token 授权 header

python - 避免列切片数组进行计算

python - 如何用python计算极导数?

python - 在 Python 中聚合简单字典的最佳方法