簡體   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