NumPy 分割數組 NumPy 提供了 np.array_split() 函數來分割數組,將一個數組拆分成多個較小的子數組。 基本用法 語法: np.array_split(array, indices_or_sections, axis=None) array: 要分割的 NumPy 數組。 i ...
NumPy 分割數組
NumPy 提供了 np.array_split()
函數來分割數組,將一個數組拆分成多個較小的子數組。
基本用法
語法:
np.array_split(array, indices_or_sections, axis=None)
array
: 要分割的 NumPy 數組。
indices_or_sections
: 指定分割位置的整數列表或要包含每個子數組的元素數量的列表。
axis
: 可選參數,指定要分割的軸。預設為 0(即行分割)。
示例:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
# 將數組分割成 3 個子數組
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
指定的分割位置超出數組範圍,則會引發異常。
如果數組元素數量不足以滿足分割要求,則會從末尾進行調整。
np.array_split()
返回一個包含子數組的列表。
高級用法
除了基本用法之外,np.array_split()
還可以用於更複雜的分割操作:
使用掩碼進行分割: 您可以使用掩碼數組來指示哪些元素應該包含在每個子數組中。
不均勻分割: 您可以指定每個子數組包含的元素數量,即使數量不均等。
沿著任意軸分割: 您可以使用 axis
參數指定要分割的軸。
例如,以下代碼使用掩碼將數組分割成兩個子數組,第一個子數組包含所有偶數元素,第二個子數組包含所有奇數元素:
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()
將以下數組 arr
沿行分割成 4 個子數組,每個子數組包含相等數量的元素。
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
在評論中分享您的代碼和輸出。
Sure, here is the requested Markdown formatted content:
NumPy 搜索數組
NumPy 提供了多種方法來搜索數組中的元素,並返回匹配項的索引。
基本用法:np.where()
語法:
np.where(condition)
condition
:用於確定要查找的元素的布爾條件。
功能:
np.where()
逐個元素比較條件,並返回滿足條件的元素的索引。
它返回一個元組,其中包含一個或多個數組,每個數組表示滿足條件的元素的索引。
示例:
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]),)
搜索排序數組:np.searchsorted()
語法:
np.searchsorted(array, value, side='left')
array
:已排序的 NumPy 數組。
value
:要搜索的值。
side
:可選參數,指定搜索方向。預設為 'left'
(從左到右)。
功能:
np.searchsorted()
在排序數組中執行二進位搜索,並返回指定值應插入的位置以保持排序順序。
它假定輸入數組已排序。
示例:
import numpy as np
arr = np.array([1, 3, 5, 7, 9])
# 查找值 7 應插入的索引
index = np.searchsorted(arr, 7)
print(index) # 輸出: 3
# 從右側查找值 2 應插入的索引
index = np.searchsorted(arr, 2, side='right')
print(index) # 輸出: 1
練習
使用 np.where()
或 np.searchsorted()
正確找到以下數組 arr
中所有等於 3 的元素的索引。
import numpy as np
arr = np.array([1, 2, 3, 4, 3, 3, 6, 7, 8])
在評論中分享您的代碼和輸出。
最後
為了方便其他設備和平臺的小伙伴觀看往期文章:
微信公眾號搜索:Let us Coding
,關註後即可獲取最新文章推送
看完如果覺得有幫助,歡迎點贊、收藏、關註