2 回答

TA贡献1785条经验 获得超4个赞
这里最棘手的部分是,不能保证在某些版本的Python中不能对字典进行排序(如果您使用的是Python 2.7,则肯定不会对字典进行排序),因此必须有一种方法来确定最终数组的值顺序。
由于看起来您想按键的字母顺序创建数组,因此可以使用列表推导和sorted:
np.array([v for _, v in sorted(exampleDict.items())])
array([[1, 2, 3],
[2, 3, 4],
[3, 4, 5],
[4, 5, 6]])

TA贡献1785条经验 获得超8个赞
如果您想保留键以供将来参考(与其他变量相比),并且仍将其视为numpy数组,则可以使用Pandas的数据框:
my_array=pandas.DataFrame(exampleDict)
然后,您可能需要对进行numpy操作my_array.values
。由于您拥有密钥,因此熊猫在其余的代码中可能会做很多工作,从而省去了一些麻烦。我建议去看看。
如果您想保持简单,除了列表理解其他答案之外,还有一种更简单的方法。尽管我不确定您是否会面对大型阵列产生任何影响,但是使用解决方案进行速度测试的方法是:
np.array([v for _, v in (exampleDict.items())])
:3.63u
np.array([v for v in exampleDict.values()])
:3.53u
np.array(list(exampleDict.values()))
:3.40u
不用说,熊猫解决方案将比其他方法花费更多的时间,它仅保留更多信息,并且“也许”将速度提高到其他地方。
添加回答
举报