In [84]: strarr1
Out[84]:
array(['000', '001', '002', '003', '004', '005', '006', '007', '008',
'009'], dtype='<U3')
In [85]: strarr2
Out[85]:
array(['0000', '0001', '0004', '0009', '0016', '0025', '0036', '0049',
'0064', '0081'], dtype='<U4')
numpy
не реализует +
для строковых dtypes. Но понимание списка делает хорошо (используя python добавление строки):
In [86]: [i+j for i,j in zip(strarr1, strarr2)]
или включение '_'
In [88]: ['_'.join([i,j]) for i,j in zip(strarr1, strarr2)]
Out[88]:
['000_0000',
'001_0001',
'002_0004',
'003_0009',
'004_0016',
'005_0025',
'006_0036',
'007_0049',
'008_0064',
'009_0081']
In [89]: np.array(_)
Out[89]:
array(['000_0000', '001_0001', '002_0004', '003_0009', '004_0016',
'005_0025', '006_0036', '007_0049', '008_0064', '009_0081'],
dtype='<U8')
другого способа использования Python добавления строки, это «выпадающий на» объект dtype:
In [91]: strarr1.astype(object)+'_'+strarr2.astype(object)
Out[91]:
array(['000_0000', '001_0001', '002_0004', '003_0009', '004_0016',
'005_0025', '006_0036', '007_0049', '008_0064', '009_0081'],
dtype=object)
Как правило, numpy строковые dtypes предлагают несколько, если вообще имеют, преимущества по сравнению со python списками строк.