Python:numpy数组拼接之np.concatenate、hstack 、vstack
在python中,用于数组拼接的主要来自numpy包,当然pandas包也可以完成。
而,numpy中可以使用append和concatenate函数:
1. 建立数组
# pandas有专门的连接方法 import numpy as np # np.size(a, 0) 行数 # np.size(a, 1) 列数 a = np.array([[1, 2],[3, 4],[5, 6]]) b = np.array([[11, 22],[33, 44],[55, 66]]) print(np.size(a,0)) print(np.size(a,1)) print(a) print(b)
2. np.append函数
c = np.append(a,b) print(c) d = np.append(a,100) #直接将所有元素重新排列成新的一维数组 print(d)
3. np.concatenate函数
e = np.concatenate((a,b),axis=0) #简言之:行增加了;或者说在第一个中括号上添加元素 print(e) f = np.concatenate((a,b),axis=1) #简言之:列增加了;或者说在第二个中括号上添加元素 print(f)
g = np.concatenate([a,b],axis=1) #简言之:列增加了;或者说在第二个中括号上添加元素 print(g)
注:同理,如果原数组是3维及以上,则会在相应的维度上添加元素,例如:3维 —— axis=2时,表示在第三个中括号([[[......]]]从外到内,一次为第一个中括号、第二个、第三个......)上添加元素。
4. hstack 和 vstack 函数
# 行连接:等价于 np.concatenate((a,b),axis = 1) c = np.hstack((a,b)) print(c) # 列连接:等价于 np.concatenate((a,b),axis = 0) d = np.vstack((a,b)) print(d)
生成3维数组:dstack
e = np.dstack((a,b)) print(e)
##