一、numpy庫中的分割函數
numpy是Python科學計算的重要庫,其提供了一系列的數組操作函數,包括數組分割函數。其中最常用的分割函數是numpy.split()和numpy.array_split()。這兩個函數的主要區別在於,numpy.split()只能將數組分成相等大小的小塊,而numpy.array_split()可以分成任意大小的小塊。
import numpy as np
arr = np.array([1,2,3,4,5,6,7,8,9])
new_arr1 = np.split(arr, 3) # 將數組分成3個相等小塊
new_arr2 = np.array_split(arr, 4) # 將數組分成4個任意大小的小塊
print(new_arr1) # [array([1, 2, 3]), array([4, 5, 6]), array([7, 8, 9])]
print(new_arr2) # [array([1, 2, 3]), array([4, 5]), array([6, 7]), array([8, 9])]
二、pandas庫中的分割函數
pandas是另一個強大的Python科學計算庫,除了可以操作不同類型的數據之外,其也提供了數組的分割函數。在pandas中,數組的分割函數是pandas.DataFrame.groupby()。其主要是根據指定的列名或條件對DataFrame進行分組。
import pandas as pd
data = {'Name':['Tom', 'Jack', 'Tom', 'Jack', 'Tom', 'Tom', 'Jack'],
'Class':[1, 1, 1, 2, 2, 1, 2],
'Score':[85, 75, 78, 82, 70, 88, 90]}
df = pd.DataFrame(data)
grouped = df.groupby('Class') # 根據Class列進行分組
for name, group in grouped:
print(name) # 分組的名稱
print(group) # 分組的內容
三、Python自帶的分割函數
除了使用第三方庫之外,Python本身也提供了一些用於數組分割的函數。比如,列表切片(List Slicing)和range()函數。
1. 列表切片
列表切片是Python中處理數組的重要方法之一。其可以通過指定開始和結束位置進行數組的切片。對於一維數組,可以使用如下方法進行分割。
arr = [1,2,3,4,5,6,7,8,9]
new_arr = [arr[i:i+3] for i in range(0, len(arr), 3)]
print(new_arr) # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
2. range()函數
range()函數是Python中用於生成一定範圍數字序列的函數之一。其可以根據指定的開始、結束和步進數來生成數字序列。通過將生成的序列進行分片,也可以實現數組的分割。
arr = [1,2,3,4,5,6,7,8,9]
new_arr = [arr[i:i+3] for i in range(0, len(arr), 3)]
print(new_arr) # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
四、總結
本文介紹了Python中三種常見的數組分割函數,分別是numpy.split()、pandas.DataFrame.groupby()和列表切片(List Slicing)。每種函數的使用方法和特點略有不同,需要根據實際需求進行選擇。同時,也可以通過range()函數和其他Python語言特性進行數組的分割操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/297397.html