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]]
网友评论