1. 程式人生 > 其它 >Numpy學習-陣列的合併與拆分

Numpy學習-陣列的合併與拆分

陣列的合併

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)