【问题标题】:julia JSON.parse losing type informationjulia JSON.parse 丢失类型信息
【发布时间】:2015-05-31 05:13:44
【问题描述】:

我刚开始学习 julia,但我遇到了这个问题:

我正在尝试使用 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)

【问题讨论】:

    标签: json types julia


    【解决方案1】:

    我认为它首先这样做是因为该数据是 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
    

    【讨论】:

      猜你喜欢
      • 2015-06-20
      • 2017-06-21
      • 1970-01-01
      • 2019-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多