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
,關注後即可獲取最新文章推送
看完如果覺得有幫助,歡迎點贊、收藏、關注