要转换以下numpy数组

    a =  [
    array([['x', 'y', 'k'], ['d', '2', 'z'], ['a', '15', 'r']], dtype='|S2'),
    array([['p', '49'], ['l', 'n']], dtype='|S2'),
    array([['5', 'y'], ['33', 'u'], ['v', 'z']], dtype='|S2'),
    array([['f', 'i'], ['c', 'm'], ['u', '98']] dtype='|S2')
    ]

进入输出b
  b =  x!y.d!2.a!15 * x!k.d!z.a!r , p!49.l!n , 5!y.33!u.v!z , f!i.c!m.u!98

考虑这样的每个子数组
   #x  #y  #k
   #d  #2  #z
   #a  #15 #r

然后将0和1列合并为'!'并且每行都带有“。”然后合并0和2列。等等。此处 0,1 0,2 列使用'*'合并
和','用于合并子数组

只是使用'!' '.' '*' ','合并字符串

我尝试了以下代码。虽然无法获得结果
temp = []
for c in a:
    temp = a[0:]
    b =  " * ".join(".".join(var1+"!"+var2 for var1,var2 in zip(temp,a) for row in a)
    print b
print " , "

最佳答案

In [144]: " , ".join(" * ".join(".".join(str(xx) + '!' + str(yy) for xx, yy in zip(x[:, 0], x[:, _x])) for _x in range(1, len(x[0]))) for x in a)
Out[144]: 'x!y.d!2.a!15 * x!k.d!z.a!r , p!49.l!n , 5!y.33!u.v!z , f!i.c!m.u!98'

关于python - 在python中使用join()合并numpy数组元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33885720/

10-14 14:28
查看更多