欢迎访问宙启技术站
智能推送

Python中如何合并和拆分数组

发布时间:2024-01-04 04:45:31

在Python中,我们可以使用numpy库中的函数来合并和拆分数组。下面是合并和拆分数组的一些方法以及示例。

合并数组:

1. 使用concatenate()函数:该函数可用于沿指定轴连接两个或多个数组。

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

result = np.concatenate((arr1, arr2))  # 合并两个数组
print(result)  # 输出: [1 2 3 4 5 6]

2. 使用stack()函数:该函数用于沿新的轴连接数组序列。

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

result = np.stack((arr1, arr2))  # 在新的轴上连接两个数组
print(result)  # 输出: [[1 2 3]
               #        [4 5 6]]

3. 使用hstack()函数:该函数将元组中的数组按水平方向进行排列。

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

result = np.hstack((arr1, arr2))  # 水平排列数组
print(result)  # 输出: [1 2 3 4 5 6]

4. 使用vstack()函数:该函数将元组中的数组按垂直方向进行排列。

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

result = np.vstack((arr1, arr2))  # 垂直排列数组
print(result)  # 输出: [[1 2 3]
               #        [4 5 6]]

拆分数组:

1. 使用split()函数:该函数可用于按指定轴将数组拆分为多个子数组。

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])
result = np.split(arr, 3)  # 按指定数量拆分数组
print(result)  # 输出: [array([1, 2]), array([3, 4]), array([5, 6])]

arr = np.array([1, 2, 3, 4, 5, 6])
result = np.split(arr, [2, 4])  # 按指定位置拆分数组
print(result)  # 输出: [array([1, 2]), array([3, 4]), array([5, 6])]

2. 使用hsplit()函数:该函数按水平轴将数组拆分为多个子数组。

import numpy as np

arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
result = np.hsplit(arr, 2)  # 按指定数量拆分数组
print(result)  # 输出: [array([[1, 2],
               #        [5, 6]]), array([[3, 4],
               #                        [7, 8]])]

arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
result = np.hsplit(arr, [2])  # 按指定位置拆分数组
print(result)  # 输出: [array([[1, 2],
               #        [5, 6]]), array([[3, 4],
               #                        [7, 8]])]

3. 使用vsplit()函数:该函数按垂直轴将数组拆分为多个子数组。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
result = np.vsplit(arr, 3)  # 按指定数量拆分数组
print(result)  # 输出: [array([[1, 2, 3]]), array([[4, 5, 6]]), array([[7, 8, 9]])]

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
result = np.vsplit(arr, [1])  # 按指定位置拆分数组
print(result)  # 输出: [array([[1, 2, 3]]), array([[4, 5, 6],
               #                        [7, 8, 9]])]

以上是在Python中合并和拆分数组的几种常用方法。您可以根据自己的需求选择合适的方法来操作数组。