我刚开始学习朱莉娅,但我有这个问题:
我正在尝试使用julia的JSON.parse
来解析矩阵(坐标列表),但它正在丢失类型信息。
coords = JSON.parse("[[1.0,-2.0],[3.0,4.0],[5.0,-1.2]]")
它返回Any
类型而不是Float
类型:
3-element Array{Any,1}:
{1.0,-2.0}
{3.0,4.0}
{5.0,-1.2}
我如何获得(或将其转换为)浮动数组?
修改 这是一个更大的问题:
taxi_df = readtable("./test.csv")
coords = [JSON.parse(x) for x in taxi_df[:POLYLINE]]
times = [float(length(x)*15) for x in coords]
df_submission = DataFrame()
df_submission[:TRIP_ID] = taxi_df[:TRIP_ID]
mean_time = mean(times)
df_submission[:TRAVEL_TIME] = [max(x, mean_time) for x in times]
writetable("submission.csv", df_submission)
答案 0 :(得分:2)
我认为它首先是这样做的,因为该数据是JSON中的列表列表,因此它无法转换为矩阵。
你可以做到
float(hcat(coords...))
如果是列,或
float(hcat(coords...))'
如果它们是行。如果效率对于此代码至关重要,也可以预先分配输出矩阵并使用for循环,例如
A = zeros(3,2)
for i in 1:3, j in 1:2
@inbounds A[i,j] = coords[i][j]
end