【问题标题】:Concatenating two string columns of numpy array into single column in python将numpy数组的两个字符串列连接成python中的单列
【发布时间】:2020-11-12 11:42:41
【问题描述】:

我有一个如下的 numpy 数组:

2016-07-02  10:55:01
2016-07-02  10:55:01
2016-07-02  10:55:01
2016-07-02  17:01:34
2016-07-02  17:01:34
2016-07-02  16:59:52
2016-07-02  17:01:34
2016-07-02  16:59:52
2016-07-02  16:59:52
2016-07-02  10:40:00
2016-07-02  12:01:14

这是两列数组。日期和时间。但我希望将两者都放入由“\ t”连接的单个列中。这两个值都是字符串格式。

我按如下循环执行此操作,但这是一个坏主意并且需要很多时间。 :

for D in Data:
    Data2 = np.append(Data2,np.array(D[0]+"\t"+D[1]))

请提出一个有效的解决方案。

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:

    简洁,但并不比简单循环更有效(正如 Praveen 在评论中指出的那样):

    import numpy as np
    
    
    np.apply_along_axis(lambda d: d[0] + '\t' + d[1], 1, arr)
    

    【讨论】:

    • np.apply_along_axis 不是矢量化解决方案。请参阅this 答案...它只是在内部使用了一个 for 循环,所以这并不能真正加快速度。
    【解决方案2】:

    使用numpy.insert 将标签\t 插入到您的数组中,然后执行numpy.reshape 从n 乘3 到n*3 乘1

    【讨论】:

      【解决方案3】:
      import numpy as np
      a=[[1],[2],[3]]
      b=[[4],[5],[6]]
      
      np.concatenate((a,b),axis=1)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-19
        • 2019-10-23
        • 2018-10-15
        • 2020-02-21
        • 2017-05-14
        • 1970-01-01
        • 2022-01-22
        相关资源
        最近更新 更多