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

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

利用numpy高效分割python列表

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

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

方法一:使用reshape函數(shù)

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

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

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

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

方法二:使用array_split函數(shù)

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

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

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

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

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