Python入门第四十八天Python丨NumPy 数组连接

Posted 轻松学Python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门第四十八天Python丨NumPy 数组连接相关的知识,希望对你有一定的参考价值。

连接 NumPy 数组

连接意味着将两个或多个数组的内容放在单个数组中。

在 SQL 中,我们基于键来连接表,而在 NumPy 中,我们按轴连接数组。

我们传递了一系列要与轴一起连接到 concatenate() 函数的数组。如果未显式传递轴,则将其视为 0。

实例

连接两个数组:

import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.concatenate((arr1, arr2))

print(arr)

运行实例

实例

沿着行 (axis=1) 连接两个 2-D 数组:

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])

arr2 = np.array([[5, 6], [7, 8]])

arr = np.concatenate((arr1, arr2), axis=1)

print(arr)

运行实例

使用堆栈函数连接数组

堆栈与级联相同,唯一的不同是堆栈是沿着新轴完成的。

我们可以沿着第二个轴连接两个一维数组,这将导致它们彼此重叠,即,堆叠(stacking)。

我们传递了一系列要与轴一起连接到 concatenate() 方法的数组。如果未显式传递轴,则将其视为 0。

实例

import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.stack((arr1, arr2), axis=1)

print(arr)

运行实例

沿行堆叠

NumPy 提供了一个辅助函数:hstack() 沿行堆叠。

实例

import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.hstack((arr1, arr2))

print(arr)

运行实例

沿列堆叠

NumPy 提供了一个辅助函数:vstack() 沿列堆叠。

实例

import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.vstack((arr1, arr2))

print(arr)

运行实例

沿高度堆叠(深度)

NumPy 提供了一个辅助函数:dstack() 沿高度堆叠,该高度与深度相同。

实例

import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.dstack((arr1, arr2))

print(arr)

运行实例

python入门第二十八天——文件上传

服务端:

 1 #!/usr/bin/env python3
 2 #-*- coding:utf-8 -*-
 3 ‘‘‘
 4 Administrator 
 5 2018/8/1 
 6 ‘‘‘
 7 import subprocess
 8 import socket,os
 9 
10 # 创建一个socket:
11     #family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None
12     #创建Socket时,AF_INET指定使用IPv4协议,
13     # 如果要用更先进的IPv6,就指定为AF_INET6
14     # AF_UNIX Unix不同进程之间的通信
15     #  SOCK_STREAM指定使用面向流的TCP协议 SOCK_DGRAM UDP协议
16 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
17 print(s)
18 address=(127.0.0.1,8000)
19 #建立连接
20 s.bind(address)
21 #监听设置端口等待客户端的请求数量
22 s.listen(3)
23 
24 
25 print(等待...........)
26 BASE_DIR=os.path.dirname(os.path.abspath(__file__))
27 
28 while True:
29     # accept 阻塞
30     conn, addr = s.accept()
31     print(addr)
32     while True:
33         data=conn.recv(1024)
34         cmd,filename,filesize=str(data,"utf8").split("|")
35         path=os.path.join(BASE_DIR,"img",filename)
36         filesize=int(filesize)
37 
38         f=open(path,"wb")
39 
40         get_sent=0
41         while get_sent != filesize:
42             data=conn.recv(1024)
43             get_sent+=len(data)
44             f.write(data)
45         print("接受完毕。")
46         f.close()
47 
48 
49 s.close()

客户端:

 1 #!/usr/bin/env python3
 2 # -*- coding:utf-8 -*-
 3 ‘‘‘
 4 Administrator 
 5 2018/8/1 
 6 ‘‘‘
 7 import socket,os,sys
 8 
 9 sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
10 print(sck)
11 address = (127.0.0.1, 8000) #192.168.0.103
12 sck.connect(address)
13 
14 BASE_DIR=os.path.dirname(os.path.abspath(__file__))
15 while True:
16     inp = input(">>>").strip()#post|kanqingzi.jpg
17 
18     cmd,path=inp.split("|")
19     path=os.path.join(BASE_DIR,path)#拼接路径
20 
21     filename=os.path.basename(path)#需要文件名字
22     filesize=os.stat(path).st_size#需要文件大小
23     #文件打包
24     file_info="post|%s|%s"%(filename,filesize)#字符串拼接
25     sck.sendall(bytes(file_info,"utf8"))
26 
27     with open(path,"rb") as f:
28         has_sent=0
29         while has_sent !=filesize:
30             data=f.read(1024)
31             sck.sendall(data)
32             has_sent+=len(data)
33     print("上传成功!!!")
34 
35 sck.close()


练习:远程控制对方电脑,并将对方电脑里面的图片发送过来。

 

以上是关于Python入门第四十八天Python丨NumPy 数组连接的主要内容,如果未能解决你的问题,请参考以下文章

python入门第二十八天——文件上传

python学习第四十八天json模块与pickle模块差异

python第四十八天--高级FTP

大数据入门第十八天——kafka整合flumestorm

Python机器学习(四十八)NumPy 矩阵库函数

Python入门第三十六天Python丨文件写入