2017-10-20 115 views
0

我有这两个数组如何通过连接2个数组来创建一个数组?

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' 

我想这样做超过slistelist所有元素。

我该怎么做?

的想法是构建我将使用导入哪些有他们作为字符串文件名的文件一个数组列表

回答

1

您可以使用np.char.zfill0为字符串和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') 
+0

我可能会误解这个问题,但我得到的是他们正在寻找'elist'中的每个元素都使用'slist'中的每个元素。这将导致最终名单中总共有1225个元素。看起来你的函数返回35. – PeterH

+1

@PeterH OP可能需要一个外部级联。也许OP会在稍后澄清。 – Psidom

+0

是的,@Psidom是正确的。我其实并不知道这个词。 – maximusdooku

相关问题