У вас были правильные идеи. Вот vectorized NumPythonic
реализация пытается идти вдоль этих идей -
# Create a separator string of the same rows as input array
separator_str = np.repeat(['\n'], pic.shape[0])[:,None]
# Concatenate these two and convert to string for final output
out = np.concatenate((pic,separator_str),axis=1).tostring()
Или один вкладыш с np.column_stack
-
np.column_stack((pic,np.repeat(['\n'], pic.shape[0])[:,None])).tostring()
Пример запуска -
In [123]: pic
Out[123]:
array([['H', 'e', 'l', 'l', 'o'],
['W', 'o', 'r', 'l', 'd']],
dtype='|S1')
In [124]: np.column_stack((pic,np.repeat(['\n'], pic.shape[0])[:,None])).tostring()
Out[124]: 'Hello\nWorld\n'
Является ли окончательный '\ n'' важный? Обычное использование 'join' помещает разделитель между строками, но не в конец. – hpaulj
Это не важно - я всегда могу добавить его позже. – ErikR