Numpy-数据合并与展平
数据合并有两个函数可供使用:append和concatenate,其中append只能合并两个矩阵,而concatenate可以合并多个矩阵。
函数 | 作用 |
---|---|
append(A,B,axis) | 合并两个数组/矩阵 |
concatenate(arrays,axis) | 合并多个数组/矩阵 |
ravel() | 将矩阵展平 |
ravel(‘F’) | 将矩阵展平(按列优先) |
TensorFlow中的tf.concat函数也有与np.concatenate相似的作用:
1 2 |
tf.concat([tensor1, tensor2], axis, name='concat') |
1.合并一维数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import numpy as np a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) c = np.array([7, 8]) nd = np.append(a, b) print(nd) ''' [1 2 3 4 5 6] ''' nd = np.concatenate([a, b, c]) print(nd) ''' [1 2 3 4 5 6 7 8] ''' |
2.合并多维数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import numpy as np a = np.arange(4).reshape(2, 2) b = a print(a) ''' [[0 1] [2 3]] ''' # 按行合并 c = np.append(a, b, axis=0) print(c) ''' [[0 1] [2 3] [0 1] [2 3]] 合并后为4×2 ''' # 按列合并 c = np.append(a, b, axis=1) print(c) ''' [[0 1 0 1] [2 3 2 3]] 合并后为2×4 ''' |
3.矩阵展平
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import numpy as np a = np.arange(6).reshape(2, -1) # -1表示自动适应该维度的大小 print(a) ''' [[0 1 2] [3 4 5]] ''' print(a.ravel()) # 按行优先展平 ''' [0 1 2 3 4 5] ''' print(a.ravel('F')) # 按列优先展平 ''' [0 3 1 4 2 5] ''' |