我想将 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/