繁体   English   中英

连接2D numpy数组中的字符串

[英]Concatenate strings from a 2D numpy array

我想连接像这样的2d numpy数组中的字符串,

for x in np.ndindex(mat.shape[0]):
    concat = ""
    for y in range(len(columns)):
        concat += str(mat[x][2 + y])

mat是一个包含每个单元格中的string s或int的二维数组, columnsmat的列名列表,例如['A', 'B', 'C', 'D'] ,使用mat[x][2 + y]避免连接前两列的字符串。 我想知道最好的方法是什么,可能是以更简洁/有效的方式。

你在连接的定义中有点模糊 - 我希望以下内容足以让你开始

print('\n'.join(' '.join(str(x) for x in row[2:]) for row in mat))

外部join加入行以一个换行符,内部一个加入了几个在各行的元素的mat -如果你除了前两个的所有元素之后都没有了,修改就拜托你了切片的上限.. 。

请注意, str(x)使字符串元素不受干扰,并以合理的方式格式化数字项。

AB -使用我们正在处理一个事实2D数组,我们可以诉诸只是一个循环-

["".join(i) for i in mat[:,2:].astype(str)]

样品运行 -

In [143]: mat
Out[143]: 
array([[1, 1, 0, 3, 1, 1],
       [3, 0, 1, 1, 1, 0],
       [2, 2, 1, 2, 1, 1]])

In [144]: ["".join(i) for i in mat[:,2:].astype(str)]
Out[144]: ['0311', '1110', '1211']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM