Я разрабатываю приложение, которое обрабатывает некоторые медицинские данные изображения в Python (библиотеку nibabel) и отправляет данные на сервер обработки в Java (TCP-сокет), что намного быстрее, чем такая же реализация Python.Отправка полного вектора из клиента Python на сервер Java
В этом смысле, я пытаюсь отправить 3D матрицу (271x271x221) с Python на Java:
sock.sendall("Input " + str(input_matrix.flatten()).strip('[]') + "\n")
Но проблема в том, что Python укорачивает матрицу Свести при заливке матрицы в строку, как и :
print input_matrix.flatten()
[12 12 12 ..., 12 12 12]
Так сервер Java получает:
Server is open!
Connection successful
Waiting for data...
Received: Input 12 12 12 ..., 12 12 12
Таким образом, я могу не восстанавливать матрицу на сервере Java.
Как я могу отправить все данные без использования цикла (цикл будет очень медленным при обработке полной 3D-матрицы) в клиенте Python?
Спасибо заранее!
Я пробовал это, но теперь я получаю еще одну ошибку, связанную с кастингом в '.join':' TypeError: элемент последовательности 0: ожидаемая строка, numpy.int16 found'. Как я могу это решить? Спасибо AJK! –
','. Join (str (x) для x в input_matrix.flatten()) – AbdealiJK
Спасибо! Последний работал очень хорошо. Кстати, есть ли эквивалентная строка в java? –