Python NumPy如何高效分割列表成固定數量的子列表?

Python NumPy如何高效分割列表成固定數量的子列表?

利用numpy高效分割python列表

在Python編程中,常常需要將長列表分割成多個大小相同的子列表。本文介紹兩種使用NumPy庫實現此目標的高效方法,并解答“如何用NumPy將列表分割成固定數量的子列表”這一問題。

假設有一個包含30個元素的列表,需要將其分割成3個大小為10的子列表。 NumPy的reshape函數和array_split函數都能輕松實現。

方法一:使用reshape函數

立即學習Python免費學習筆記(深入)”;

reshape函數可以改變數組的形狀,只要元素總數不變即可。代碼如下:

import numpy as np  data = list(range(30))  # 創建一個包含0-29的列表 result = np.array(data).reshape((3, 10)) print(result)

這段代碼首先將列表轉換為NumPy數組,然后使用reshape((3, 10))將其重塑為3行10列的二維數組,從而得到3個大小為10的子列表。

方法二:使用array_split函數

array_split函數可以將數組分割成多個子數組。如果數組長度不能被分割數量整除,則最后一些子數組的長度可能與其他子數組不同。代碼如下:

import numpy as np  data = list(range(30)) result = np.array_split(data, 3) print(result)

這段代碼將列表分割成3個子列表。由于列表長度(30)可以被分割數量(3)整除,因此每個子列表長度都為10。

這兩種方法都能有效地分割列表,選擇哪種方法取決于具體情況。reshape方法適用于列表長度能被分割數量整除的情況,而array_split方法更通用,能處理長度無法整除的情況。

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享