一文詳解NumPy分割與搜索數(shù)組
NumPy 分割數(shù)組
NumPy 提供了 np.array_split()
函數(shù)來分割數(shù)組,將一個數(shù)組拆分成多個較小的子數(shù)組。
基本用法
語法:
np.array_split(array, indices_or_sections, axis=None)
array
: 要分割的 NumPy 數(shù)組。 indices_or_sections
: 指定分割位置的整數(shù)列表或要包含每個子數(shù)組的元素數(shù)量的列表。 axis
: 可選參數(shù),指定要分割的軸。默認為 0(即行分割)。
示例:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6]) # 將數(shù)組分割成 3 個子數(shù)組 new_arrays = np.array_split(arr, 3) print(new_arrays) # 輸出: # [array([1, 2]), array([3, 4]), array([5, 6])] # 指定分割位置 new_arrays = np.array_split(arr, [2, 5]) print(new_arrays) # 輸出: # [array([1, 2]), array([3, 4]), array([5, 6])] # 沿列分割 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) new_arrays = np.array_split(arr, 3, axis=1) print(new_arrays) # 輸出: # [array([[1, 4, 7]]), array([[2, 5, 8]]), array([[3, 6, 9]])]
注意事項
如果 indices_or_sections
指定的分割位置超出數(shù)組范圍,則會引發(fā)異常。 如果數(shù)組元素數(shù)量不足以滿足分割要求,則會從末尾進行調(diào)整。 np.array_split()
返回一個包含子數(shù)組的列表。
高級用法
除了基本用法之外,np.array_split()
還可以用于更復雜的分割操作:
使用掩碼進行分割: 您可以使用掩碼數(shù)組來指示哪些元素應(yīng)該包含在每個子數(shù)組中。 不均勻分割: 您可以指定每個子數(shù)組包含的元素數(shù)量,即使數(shù)量不均等。 沿著任意軸分割: 您可以使用 axis
參數(shù)指定要分割的軸。
例如,以下代碼使用掩碼將數(shù)組分割成兩個子數(shù)組,第一個子數(shù)組包含所有偶數(shù)元素,第二個子數(shù)組包含所有奇數(shù)元素:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6]) mask = arr % 2 == 0 new_arrays = np.array_split(arr, mask) print(new_arrays) # 輸出: # [array([2, 4, 6]), array([1, 3, 5])]
練習
使用 np.array_split()
將以下數(shù)組 arr
沿行分割成 4 個子數(shù)組,每個子數(shù)組包含相等數(shù)量的元素。
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
在評論中分享您的代碼和輸出。
NumPy 搜索數(shù)組
NumPy 提供了多種方法來搜索數(shù)組中的元素,并返回匹配項的索引。
基本用法:np.where()
語法:
np.where(condition)
condition
:用于確定要查找的元素的布爾條件。
功能:
np.where()
逐個元素比較條件,并返回滿足條件的元素的索引。 它返回一個元組,其中包含一個或多個數(shù)組,每個數(shù)組表示滿足條件的元素的索引。
示例:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) # 查找值為 4 的索引 indices = np.where(arr == 4) print(indices) # 輸出: (array([3, 5, 6]),) # 查找大于 5 的元素的索引 indices = np.where(arr > 5) print(indices) # 輸出: (array([6, 7, 8]),)
搜索排序數(shù)組:np.searchsorted()
語法:
np.searchsorted(array, value, side='left')
array
:已排序的 NumPy 數(shù)組。 value
:要搜索的值。 side
:可選參數(shù),指定搜索方向。默認為 'left'
(從左到右)。
功能:
np.searchsorted()
在排序數(shù)組中執(zhí)行二進制搜索,并返回指定值應(yīng)插入的位置以保持排序順序。 它假定輸入數(shù)組已排序。
示例:
import numpy as np arr = np.array([1, 3, 5, 7, 9]) # 查找值 7 應(yīng)插入的索引 index = np.searchsorted(arr, 7) print(index) # 輸出: 3 # 從右側(cè)查找值 2 應(yīng)插入的索引 index = np.searchsorted(arr, 2, side='right') print(index) # 輸出: 1
練習
使用 np.where()
或 np.searchsorted()
正確找到以下數(shù)組 arr
中所有等于 3 的元素的索引。
import numpy as np arr = np.array([1, 2, 3, 4, 3, 3, 6, 7, 8])
在評論中分享您的代碼和輸出。
最后
到此這篇關(guān)于一文詳解NumPy分割與搜索數(shù)組的文章就介紹到這了,更多相關(guān)NumPy分割與搜索數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中openpyxl實現(xiàn)vlookup函數(shù)的實例
在本篇文章里小編給大家整理的是關(guān)于Python中openpyxl實現(xiàn)vlookup函數(shù)的實例內(nèi)容,有興趣的朋友們可以學習參考下。2020-10-10Python 創(chuàng)建新文件時避免覆蓋已有的同名文件的解決方法
今天小編就為大家分享一篇Python 創(chuàng)建新文件時避免覆蓋已有的同名文件的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python代碼解決RenderView窗口not found問題
這篇文章主要介紹了Python代碼解決RenderView窗口not found問題,需要的朋友可以參考下2016-08-08利用Vscode進行Python開發(fā)環(huán)境配置的步驟
這篇文章主要給大家介紹了關(guān)于如何利用Vscode進行Python開發(fā)環(huán)境配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2020-06-06