Numpy學習-陣列的合併與拆分
阿新 • • 發佈:2021-12-30
陣列的合併
import numpy as np # 建立陣列 arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.ones((2, 2), dtype=np.int32) print('arr1:\n', arr1) print('arr2:\n', arr2) print('*' * 100) # 數組合並 # 向右合併----水平方向 # res = np.hstack((arr1, arr2)) # print('res:\n', res) # 向下合併----垂直方向 # res = np.vstack((arr1, arr2)) # print('res:\n', res) # np.concatenate進行合併 # 注意:如果使用np.concatenate進行合併,必須保證所有的陣列維度都是一樣 # 引數1:要拼接的陣列元組 # 引數axis: 在二維陣列中,axis=0,代表行的方向;axis=1代表列的方向 res = np.concatenate((arr1, arr2), axis=0) # res = np.concatenate((arr1, arr2), axis=1) print('res:\n',res)
陣列的拆分
import numpy as np # 建立陣列 arr = np.arange(16).reshape((4, 4)) print('arr:\n', arr) # 陣列拆分 # 水平拆分------>將水平方向進行打斷拆分 # 引數1:需要拆分的陣列 # 引數2:拆分的份數,拆分的時候,必須能夠進行平均拆分 # res = np.hsplit(arr, 2) # print('res:\n',res) # 垂直拆分 ---將垂直方向進行打斷拆分 # res = np.vsplit(arr, 4) # print('res:\n',res) # 此時引數2: # --->第一部分---:1 # --->第二部分---1:2 # --->第三部分----2:3 # --->第四部分----3: # res = np.vsplit(arr, [1, 2, 3]) # res = np.vsplit(arr, [1, 3]) # print('res:\n', res) # split # 行的方向拆分 ---->將行的方向打斷為拆分 # res = np.split(arr, 2, axis=0) # 列的方向拆分----->將列的方向進行打斷拆分 # res = np.split(arr, 2, axis=1) # res = np.split(arr, [1, 3], axis=1) # print('res:\n', res) # 注意:拆分的時候,有限制 # 拆分條件 ---前n列為一部分,最後一列為一部分 # res = np.split(arr, [-1], axis=1) # print('res:\n', res) # 索引方式 res1 = arr[:, :-1] res2 = arr[:, -1:] print('res1:\n', res1) print('res2:\n', res2)