发送numpy的数组呢
时间: 2023-10-16 10:06:22 浏览: 31
发送numpy数组和发送普通的Python数组类似,只需要先将numpy数组转换为二进制数据,然后再通过socket发送即可。可以使用numpy提供的`tostring()`方法将数组转换为二进制数据,接收方可以使用`fromstring()`方法将二进制数据转换为numpy数组。下面是一个简单的示例代码:
发送方:
```python
import socket
import numpy as np
# 创建socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('localhost', 8888))
# 定义要发送的numpy数组
arr = np.array([1, 2, 3, 4, 5])
# 将数组转换为二进制数据
data = arr.tostring()
# 发送二进制数据
s.send(data)
# 关闭socket
s.close()
```
接收方:
```python
import socket
import numpy as np
# 创建socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('localhost', 8888))
s.listen(1)
# 接收连接
conn, addr = s.accept()
# 接收二进制数据
data = conn.recv(1024)
# 将二进制数据转换为numpy数组
arr = np.fromstring(data)
# 输出数组
print(arr)
# 关闭连接和socket
conn.close()
s.close()
```
在上面的示例中,我们使用了numpy提供的`tostring()`方法将numpy数组转换为二进制数据。接收方在接收到二进制数据后,使用`fromstring()`方法将二进制数据转换为numpy数组。需要注意的是,在numpy 1.9版本及以上,`fromstring()`方法已经被废弃,可以使用`frombuffer()`方法代替。