一、numpy.split()方法
numpy.split()方法是numpy的一个方法,可以将一个数组分成多个子数组,其用法如下:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
new_arr = np.split(arr, 3)
print(new_arr)
上述代码中,arr是需要分割的数组,3是想要将数组分成多少个子数组。输出的结果是一个包含多个子数组的列表。
numpy.split()方法的参数中还可以指定在哪个位置进行分割。比如,我们可以在第二个元素和第四个元素之间进行分割,代码如下:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
new_arr = np.split(arr, [2, 4])
print(new_arr)
这样就会将原数组分成三个子数组,分别是[1, 2]、[3, 4]、[5, 6]。
二、Python切片
Python中的切片操作也可以实现数组的分割。我们可以在指定的位置使用":"进行分割。比如,我们可以在第二个元素和第四个元素之间进行分割,代码如下:
arr = [1, 2, 3, 4, 5, 6]
new_arr = [arr[:2], arr[2:4], arr[4:]]
print(new_arr)
这样就会将原数组分成三个子数组,分别是[1, 2]、[3, 4]、[5, 6]。
三、numpy.array_split()方法
numpy.array_split()方法与numpy.split()方法类似,可以将数组分成多个子数组,但与numpy.split()不同的是,numpy.array_split()方法可以在不能平均分成子数组时,依然可以进行分割。
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7])
new_arr = np.array_split(arr, 3)
print(new_arr)
输出的结果是一个包含三个子数组的列表,分别是[1, 2, 3]、[4, 5]、[6, 7]。
四、pandas.DataFrame()方法
pandas是Python中的一个强大的数据处理库,如果要分割一个二维数组,可以使用pandas.DataFrame()方法。
import pandas as pd
df = pd.DataFrame({'a': [1, 2, 3, 4, 5, 6], 'b': [7, 8, 9, 10, 11, 12]})
new_df = np.split(df, 3)
print(new_df)
输出的结果是一个包含三个子数组的列表,分别是数组df的三段子数组。
五、小结
以上是Python数组分割的几种方法,每种方法都有其适用的场景。numpy.split()和numpy.array_split()方法是在处理由numpy数组构成的数据时非常实用。Python切片的操作则尤其适用于简单列表的分割。如果需要分割的是由数据构成的二维数组,则可以使用pandas库的DataFrame()方法来完成操作。