[英]Sending Complete Vector from Python Client to Java Server
我正在開發一個應用程序,該應用程序在Python(nibabel庫)中處理一些醫學圖像數據,並將數據發送到Java(TCP套接字)中的處理服務器,這比同一個Python實現要快得多。
從這個意義上講,我正在嘗試從Python向Java發送3D矩陣(271x271x221):
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服務器中重建矩陣。
如何在Python客戶端中不使用循環就發送所有數據(循環在處理整個3D矩陣時會很慢)?
先感謝您!
問題在於, nibabel
向量類型上的str
試圖干擾並縮短輸出,因為向量很大。
我沒有使用過nibabel,但通常repr
函數不應縮短它-現在,nibabel可能已將其函數覆蓋為其向量類。
更好的方法是不使用str或repr-而是創建自己的字符串。
",".join(input_matrix.flatten())
為您提供整個向量,並且每個元素之間都有逗號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.