numpy_array 合并


Demo.py

import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])
#上下合并vertical stack
# vertical stack本身属于一种上下合并,即对括号中的两个整体进行对应操作         
print np.vstack((A,B)) 
#此时我们对组合而成的矩阵进行属性探究:
C = np.vstack((A,B))      
print np.shape(A),np.shape(C)   
# (3,) (2,3) 

import numpy as np
A = np.array([1,1,1])
B = np.array([2,2,2])  
#左右合并horizontal stack
D = np.hstack((A,B))   
print D
# [1,1,1,2,2,2]
print np.shape(A),np.shape(D)   
# (3,) (6,)

#面对A序列, 转置操作便很有可能无法对其进行转置(因为A并不是矩阵的属性),
#此时就需要我们借助其他的函数操作进行转置:
import numpy as np
A = np.array([1,1,1])
print A[np.newaxis,:]
# [[1 1 1]]
print A[np.newaxis,:].shape
# (1,3)
print A[:,np.newaxis]
print A[:,np.newaxis].shape
# (3,1)

import numpy as np
A = np.array([1,1,1])[:,np.newaxis]
B = np.array([2,2,2])[:,np.newaxis]
         
C = np.vstack((A,B))   # vertical stack
D = np.hstack((A,B))   # horizontal stack

print D
print A.shape,D.shape
# (3,1) (3,2)

#当你的合并操作需要针对多个矩阵或序列时,
#借助concatenate函数可能会让你使用起来比前述的函数更加方便
import numpy as np
A = np.array([[1,1,1]])
B = np.array([[2,2,2]]) 
#axis参数很好的控制了矩阵的纵向或是横向打印,相比较vstack和hstack函数显得更加方便。
C = np.concatenate((A,B,B,A),axis=0)#横向
print C
D = np.concatenate((A,B,B,A),axis=1)#纵向
print D

import numpy as np
A = np.array([[1,2],[3,4]])
B = np.array([[5,6]]) 
#axis参数很好的控制了矩阵的纵向或是横向打印,相比较vstack和hstack函数显得更加方便。
C = np.concatenate((A,B),axis=0)#横向
print C
D = np.concatenate((A,B.T),axis=1)#纵向
print D


结果:

[[1 1 1]
 [2 2 2]]
(3L,) (2L, 3L)

[1 1 1 2 2 2]
(3L,) (6L,)

[[1 1 1]]
(1L, 3L)
[[1]
 [1]
 [1]]
(3L, 1L)

[[1 2]
 [1 2]
 [1 2]]
(3L, 1L) (3L, 2L)

[[1 1 1]
 [2 2 2]
 [2 2 2]
 [1 1 1]]
[[1 1 1 ..., 1 1 1]]

[[1 2]
 [3 4]
 [5 6]]
[[1 2 5]
 [3 4 6]]

你可能感兴趣的:(numpy_array 合并)