代码之家  ›  专栏  ›  技术社区  ›  maximusdooku

如何通过从2个数组串联来创建数组?

  •  0
  • maximusdooku  · 技术社区  · 8 年前

    我有这两个阵列

    slist = np.arange(1,1723,50) #List of start index
    elist = np.arange(50,1800,50) #End index
    

    这

       'G'+'{:0>5}'.format(slist[0])+"-"+'{:0>5}'.format(elist[0])
    

    给我:

        'G00001-00050'
    

    我想对 slist 和 elist .

    我该怎么做?

    1 回复  |  直到 8 年前
        1
  •  1
  •   akuiper    8 年前

    您可以使用 np.char.zfill 0 到字符串和 np.char.add

    from functools import reduce
    import numpy as np
    ​
    def cust_format(slist, elist):
    
        slist = np.char.zfill(slist.astype(str), 5)
        elist = np.char.zfill(elist.astype(str), 5)
        lst = ['G', slist, '-', elist]
    
        return reduce(np.char.add, lst)
    
    cust_format(slist, elist)
    #array(['G00001-00050', 'G00051-00100', 'G00101-00150', 'G00151-00200',
    #       'G00201-00250', 'G00251-00300', 'G00301-00350', 'G00351-00400',
    #       'G00401-00450', 'G00451-00500', 'G00501-00550', 'G00551-00600',
    #       'G00601-00650', 'G00651-00700', 'G00701-00750', 'G00751-00800',
    #       'G00801-00850', 'G00851-00900', 'G00901-00950', 'G00951-01000',
    #       'G01001-01050', 'G01051-01100', 'G01101-01150', 'G01151-01200',
    #       'G01201-01250', 'G01251-01300', 'G01301-01350', 'G01351-01400',
    #       'G01401-01450', 'G01451-01500', 'G01501-01550', 'G01551-01600',
    #       'G01601-01650', 'G01651-01700', 'G01701-01750'], 
    #      dtype='|S12')