Python 如何将字典列表作为numpy数组导入

Python 如何将字典列表作为numpy数组导入,python,csv,numpy,dictionary,genfromtxt,Python,Csv,Numpy,Dictionary,Genfromtxt,我有以下形式的词典列表: [[{'x': 33, 'y': 69, 'z': 870}, {'x': 33, 'y': 69, 'z': 870}],[{'x': 33, 'y': 64, 'z': 876}]] 此数据以.csv文件的形式显示。我需要将其作为NumPy数组导入Python。请帮忙 让我们使用pd.concat和pd.DataFrame: import pandas as pd l = [[{'x': 33, 'y': 69, 'z': 870}, {'x': 33, 'y':

我有以下形式的词典列表:

[[{'x': 33, 'y': 69, 'z': 870}, {'x': 33, 'y': 69, 'z': 870}],[{'x': 33, 'y': 64, 'z': 876}]]

此数据以.csv文件的形式显示。我需要将其作为NumPy数组导入Python。请帮忙

让我们使用pd.concat和pd.DataFrame:

import pandas as pd
l = [[{'x': 33, 'y': 69, 'z': 870}, {'x': 33, 'y': 69, 'z': 870}],[{'x': 33, 'y': 64, 'z': 876}]]
pd.concat([pd.DataFrame(i) for i in l]).values
输出:

array([[ 33,  69, 870],
       [ 33,  69, 870],
       [ 33,  64, 876]], dtype=int64)

鉴于您的示例文本:

In [814]: txt
Out[814]: '[[{"x" : 1, "y" : 4, "z" : 6},{"x" : 1, "y" : 2, "z" : 8}],[{"x" : 5, "y" : 1, "z" : 6}],[{"x" : 15, "y" : 44, "z" : 6},{"x" : 12, "y" : 22, "z" : 56}]]'


In [818]: data = json.loads(txt)
In [819]: data
Out[819]: 
[[{'x': 1, 'y': 4, 'z': 6}, {'x': 1, 'y': 2, 'z': 8}],
 [{'x': 5, 'y': 1, 'z': 6}],
 [{'x': 15, 'y': 44, 'z': 6}, {'x': 12, 'y': 22, 'z': 56}]]
这是一个包含3个列表的列表。子列表有2个或1个字典。我可以看到迭代字典以将值合并到一个字典中。例如,一个具有3个键,以及类似嵌套的值列表。它不能是常规的
numpy
数组

仅通过阅读[819],我希望我们可以生成:

In [825]: dd = {'x': [[1,1],[5],[15,12]], 'y':[[4,2],[1],[44,22]], 'z':[[6,8],[6
     ...: ],[6,56]]}
In [826]: dd
Out[826]: 
{'x': [[1, 1], [5], [15, 12]],
 'y': [[4, 2], [1], [44, 22]],
 'z': [[6, 8], [6], [6, 56]]}
我不会详细讨论通过列表和字典来获得这些信息。没有什么棘手或先进的,只是有点乏味

有关合并字典值的详细信息


词典的
csv
文件是什么样子的?通常,
csv
有简单的行和列,列之间用分隔符分隔,如
。它有两列…第一列包含整数,第二列包含上述格式的数据。我需要对每个(x,y,z)执行操作。
采用上述格式
-用引号{}和:?这将很难分析。请提供该文件的一个示例。文件中的每一行都带有“;”字样作为分隔符-------31;[x:1,y:4,z:6},{“x:1,y:2,z:8}],{“x:5,y:1,z:6}],{“x:15,y:44,z:6},{“x:12,y:22,z:56}]