簡體   English   中英

將完整的向量從Python客戶端發送到Java服務器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM