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)

posted @ 2021-12-30 15:40  小杜打醋尢买布  阅读(186)  评论(0编辑  收藏  举报