在Julia中为表格数据创建字典

时间:2016-04-29 06:05:31

标签: dictionary julia

我有一个表格数据,如:

+---+----+----+
|   | a  | b  |
+---+----+----+
| P |  1 |  2 |
| Q | 10 | 20 |
+---+----+----+

我希望使用Dict来表示这一点。

使用列名和行名:

x = ["a", "b"]
y = ["P", "Q"]

和数据

data = [ 1  2 ;
        10 20  ]

如何创建字典对象d,以便d["a", "P"] = 1等等?有没有像

这样的方式
d = Dict(zip(x,y,data))

1 个答案:

答案 0 :(得分:4)

您的代码只需稍加更改即可使用Iterators.product

d = Dict(zip(Iterators.product(x, y), data.'))

要执行此操作,您需要在项目中添加一行using Iterators,并且可能需要Pkg.add("Iterators")。因为Julia矩阵是列主要的(元素按列顺序存储,列按矩阵顺序存储),我们需要使用转置运算符data转置.'矩阵。

这是您问题的字面答案。我不建议这样做。如果您有表格数据,最好使用DataFrame。这些不是二维的(行没有名称),但可以通过添加其他列并使用select来修复。