Julia:将PyObject转换为数组

Mar*_*rek 5 pyobject julia

在Julia,我正在调用Python模块pandas_datareader来从Web下载数据:

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

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

谢谢!

Abh*_*ith 2

@pyimport宏用于通过PyObject类型操作本例中的 Python 对象,即 pandas DataFrame。给定o::PyObject,o[:attribute]相当于o.attributePython中的,具有自动类型转换。下面的代码片段展示了如何通过调用 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
...
Run Code Online (Sandbox Code Playgroud)