【问题标题】:Making two arrays the same size by grouping通过分组使两个数组大小相同
【发布时间】:2021-01-05 03:59:55
【问题描述】:

我有 2 个大小相同的数组,第一个代表时间,第二个代表我想按第一个分组的距离,因此每个组将只有相同的整数值(两个整数之间的浮点数)

这是我的原始时间数组:

time=[0.2,0.4,0.6,0.8,1,1.2,1.4,1.6,1.8,1.9]

这是我的距离数组:

distance=[1,2,4,5.5,7.8,9.6,10,11,11.6,11.9]

所以在按相同整数分组后的时间数组中,我得到了这个:

time=[0.2,0.4,0.6,0.8],[1,1.2,1.4,1.6,1.8,1.9]

第一个子组包含4 elements,第二个子组包含6 elements 所以距离组应该相应地包含4 then 6 elements 像这样:

distance=[1,2,4,5.5],[7.8,9.6,10,11,11.6,11.9]

所以每个组的大小将与距离组的大小相同

有什么想法或帮助吗?

【问题讨论】:

    标签: python numpy pycharm


    【解决方案1】:

    下面的代码做你想做的事:

    s=set([int(i) for i in time])
    timesplit={i:[] for i in s}
    for i in time:
        k=int(i)
        timesplit[k].append(i)
    
    timelengths=[len(i) for i in timesplit.values()]
    
    distances=[]
    for i in timelengths:
        distances.append(distance[:i])
        distance=distance[i:]
    
    res_times=list(timesplit.values())
    res_distances=distances
    
    print(res_times)
    print(res_distances)
    

    输出:

    [[0.2,0.4,0.6,0.8],[1,1.2,1.4,1.6,1.8,1.9]]
    [[1,2,4,5.5],[7.8,9.6,10,11,11.6,11.9]]
    

    【讨论】:

    • 这很有帮助,但是当我试图绘制它们但我收到此消息时:ValueError: setting an array element with a sequence。有什么想法吗?
    • 你想画什么?每个结果都是一个列表列表,您不能直接绘制它们。您可以单独绘制它们的项目(例如 res_times[0] 和 res_distances[0] 等)
    猜你喜欢
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-20
    相关资源
    最近更新 更多