Julia:将PyObject转换为数组

时间:2016-01-20 20:37:01

标签: julia pyobject

在Julia,我正在调用一个Python模块pandas_datareader来从网上下载数据:

using PyCall
@pyimport datetime
@pyimport pandas_datareader.data as web
gdp = web.DataReader("GDPCA","fred",start=datetime.datetime(1929,1,1))

变量gdp是PyObject对象。因此,我无法操纵它(以日志为例)。如何将其转换为数组?我试过转换(Array {Float64,2},gdp),但它只会崩溃朱莉娅。

谢谢!

1 个答案:

答案 0 :(得分:2)

@pyimport宏用于通过PyObject类型操作Python对象,在这种情况下是pandas DataFrame。给定o::PyObjecto[:attribute]相当于Python中的o.attribute,具有自动类型转换功能。所以下面的代码片段展示了如何通过调用Python函数来获取Julia数组,

julia> using PyCall
julia> @pyimport datetime
julia> gdp = web.DataReader("GDPCA","fred",start=datetime.datetime(1929,1,1))
julia> typeof(gdp)
PyCall.PyObject
julia> gdp[:values]
87x1 Array{Float64,2}:
1056.6
966.7
904.8
788.2
778.3
...