Python | Numpy | 数组的拼接和裁剪

数组拼接

arr1 = np.array([[1, 2, 3],[4, 5, 6]])
arr2 = np.array([[7, 8, 9],[10, 11, 12]])

#拼接方法一:np.concatenate()
x= np.concatenate((arr1, arr2),axis= 0)    #上下拼接
y= np.concatenate((arr1,arr2), axis= 1)    #左右拼接

#拼接方法二:np.vstack()和np.hstack()
x= np.vstack((arr1, arr2))          #上下拼接
y= np.hstack((arr1, arr2))          #左右拼接

#拼接方法三:np.r_ 和np.c_
x= np.r_[arr1, arr2]    #上下拼接
y= np.c_[arr1, arr2]    #左右拼接
[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]]

[[ 1  2  3  7  8  9]
 [ 4  5  6 10 11 12]]




数组裁剪

arr = np.array([[1, 2, 3, 4],[ 5, 6, 7, 8],[9, 10, 11, 12],[13, 14, 15, 16]])
arr1, arr2, arr3 =np.split(arr, [1, 3],axis= 0)   #在0,1之间和2,3之间将数组裁成3份
#省略print语句
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]
 [13 14 15 16]]

arr1: 
 [[1 2 3 4]]

arr2: 
 [[ 5  6  7  8]
 [ 9 10 11 12]]

arr3: 
 [[13 14 15 16]]



重复

1、一维数组重复

arr = np.array([1, 2, 3, 4])
x = arr.repeat(3)     
y = arr.repeat([1,2,3,4])
arr: 
 [1 2 3 4]
x: 
 [1 1 1 2 2 2 3 3 3 4 4 4]
y: 
 [1 2 2 3 3 3 4 4 4 4]


二维数组重复

arr = np.array([[1, 2, 3, 4],[ 5, 6, 7, 8]])
x = arr.repeat(2,axis=0)
arr: 
 [[1 2 3 4]
 [5 6 7 8]]
x: 
 [[1 2 3 4]
 [1 2 3 4]
 [5 6 7 8]
 [5 6 7 8]]




Tile(贴瓷砖)

arr = np.array([[0, 0, 0],[ 0, 1, 0],[ 0, 0, 0]])
x =np.tile(arr, (2, 3))
arr: 
 [[0 0 0]
 [0 1 0]
 [0 0 0]]
x: 
 [[0 0 0 0 0 0 0 0 0]
 [0 1 0 0 1 0 0 1 0]
 [0 0 0 0 0 0 0 0 0]
 [0 0 0 0 0 0 0 0 0]
 [0 1 0 0 1 0 0 1 0]
 [0 0 0 0 0 0 0 0 0]]




你可能感兴趣的:(Python)