numpy库,测试代码记得调用“import numpy as np”
题外话:按行拼接意思行数增加,按列拼接意思列数增加。
numpy.tile(A,rep):数组扩展,这里扩展还是原来的数组
A:数组
rep:(行,列)
第一种
import numpy as np
b=np.array([[2,4],[4,6]])
np.tile(b,(1,3)) #行扩展1倍,列扩展3倍;
<<<array([[2, 4, 2, 4, 2, 4],
[4, 6, 4, 6, 4, 6]])
第二种
b=np.array([[2,4],[4,6]])
np.tile(b,(3,1))#行扩展3倍,列扩展1倍(本身)
<<<array([[2, 4],
[4, 6],
[2, 4],
[4, 6],
[2, 4],
[4, 6]])
第三种
b=np.array([[2,4],[4,6]])
np.tile(b,(3,3)) #行列都扩展3倍
<<<array([[2, 4, 2, 4, 2, 4],
[4, 6, 4, 6, 4, 6],
[2, 4, 2, 4, 2, 4],
[4, 6, 4, 6, 4, 6],
[2, 4, 2, 4, 2, 4],
[4, 6, 4, 6, 4, 6]])
numpy.concatenate((a1,a2,…), axis=0) 函数,能够一次完成多个数组的拼接。其中a1,a2,…是数组类型,相同的维数。axis代表维度,几维数据几个维度。
第一种
b=np.array([2,3])
a=np.array([4,6])
np.concatenate((a,b),axis=0)#谁在前以谁开头,一维数组axis=0可省
<<<array([4, 6, 2, 3])
第二种
b=np.array([[1,2],[3,4]])
a=np.array([[5,6],[7,8]])
np.concatenate((a,b),axis=0) #(a,b)谁在前谁开头。这里可以将axis=0表示行拼接
<<<array([[5, 6],
[7, 8],
[1, 2],
[3, 4]])
np.concatenate((a,b),axis=1) #(a,b)谁在前谁开头。这里可以将axis=1表示列拼接
<<<array([[5, 6, 1, 2],
[7, 8, 3, 4]])
第三种
b=np.array([[1,2],[3,4]])
a=np.array([[5,6],[7,8]])
#np.concatenate((a,b),axis=0)
np.concatenate((a,b)) #axis默认按行拼接
<<<array([[5, 6],
[7, 8],
[1, 2],
[3, 4]])
第四种
维数是3维,则axis=-1时,按列拼接
np.stack([arrays1,array2,array3],axis=0),arrays1,array2,array3数组,axis表示维度
x1 = np.arange(9).reshape((3,3))
<<<array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
x2 = np.arange(10,19,1).reshape((3,3))
<<<array([[10, 11, 12],
[13, 14, 15],
[16, 17, 18]])
y2 = np.stack((x1,x2),axis=0)#整个数组拼接,按行扩展
<<<array([[[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]],
[[10, 11, 12],
[13, 14, 15],
[16, 17, 18]]])
y2.shape
<<<(2, 3, 3)
y2 = np.stack((x1,x2),axis=1) axis=1,则是数组内部列扩展,相应位置列扩展
<<<array([[[ 0, 1, 2],
[10, 11, 12]],
[[ 3, 4, 5],
[13, 14, 15]],
[[ 6, 7, 8],
[16, 17, 18]]])
y2.shape
<<< (3, 2, 3)
b=np.array([[1,2],[3,4]])
a=np.array([[5,6],[7,8]])
d=np.stack((a,b),axis=1)
d
<<<array([[[5, 6],
[1, 2]],
[[7, 8],
[3, 4]]])
第二种
x1 = np.arange(9).reshape((3,3))
x2 = np.arange(10,19,1).reshape((3,3))
y2 = np.stack((x1,x2),axis=-1)
y2
<<<<array([[[ 0, 10],
[ 1, 11],
[ 2, 12]],
[[ 3, 13],
[ 4, 14],
[ 5, 15]],
[[ 6, 16],
[ 7, 17],
[ 8, 18]]])
y2.shape
<<<(3,3,2)
用代码操作一下,应该会更明白,更了解。