将完整向量从 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())
为您提供每个元素之间带有逗号的整个向量。
我正在开发一个应用程序来处理 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())
为您提供每个元素之间带有逗号的整个向量。