将完整向量从 Python 客户端发送到 Java 服务器

Sending Complete Vector from Python Client to Java Server

我正在开发一个应用程序来处理 Python(nibabel 库)中的一些医学图像数据,并将数据发送到 Java(TCP 套接字)中的处理服务器,这要快得多比相同的 Python 实施。

从这个意义上讲,我正在尝试将 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 服务器中重建矩阵。

如何在 Python 客户端中不使用循环(循环处理完整的 3D 矩阵会很慢)来发送所有数据?

提前致谢!

问题是 nibabel 矢量类型上的 str 试图干预和缩短输出,因为矢量很大。

我没用过 nibabel,但通常 repr 函数不应该缩短它 - 现在,nibabel 可能已经为他们的向量 class.

覆盖了这个函数

最好不要使用 str 或 repr - 而是制作自己的字符串。

",".join(input_matrix.flatten()) 为您提供每个元素之间带有逗号的整个向量。