Python 如何通过从2个数组连接来创建数组?

Python 如何通过从2个数组连接来创建数组?,python,arrays,numpy,Python,Arrays,Numpy,我有这两个数组 slist = np.arange(1,1723,50) #List of start index elist = np.arange(50,1800,50) #End index 这个 给我: 'G00001-00050' 我想对slist和elist的所有元素都这样做 我该怎么做 其思想是构造一个数组列表,我将使用该列表导入文件,这些文件在文件名中以字符串形式存在您可以使用np.char.zfill将0填充到字符串,并使用np.char.add将它们按元素连接起来

我有这两个数组

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

给我:

    'G00001-00050'
我想对slist和elist的所有元素都这样做

我该怎么做

其思想是构造一个数组列表,我将使用该列表导入文件,这些文件在文件名中以字符串形式存在

您可以使用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')

我可能误解了这个问题,但我得到的是,他们希望将slist中的每个元素与elist中的每个元素一起使用。这将导致最终列表中总共有1225个元素。看起来您的函数正在返回35。OP可能需要外部连接。也许OP稍后会澄清。是的,@Psidom是正确的。我其实不知道这个词。
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')