一文詳解NumPy數(shù)組迭代與合并
NumPy 數(shù)組迭代
NumPy 數(shù)組迭代是訪問和處理數(shù)組元素的重要方法。它允許您逐個或成組地遍歷數(shù)組元素。
基本迭代
我們可以使用 Python 的基本 for 循環(huán)來迭代 NumPy 數(shù)組。
一維數(shù)組迭代:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
for element in arr:
print(element)
二維數(shù)組迭代:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
for row in arr:
for element in row:
print(element)
多維數(shù)組迭代:
對于更高維度的數(shù)組,我們可以使用嵌套循環(huán)來迭代每個維度。
import numpy as np
arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
for cube in arr:
for row in cube:
for element in row:
print(element)
使用 nditer() 進(jìn)行高級迭代
NumPy 提供了 np.nditer() 函數(shù),用于更復(fù)雜的迭代操作。它允許您:
指定迭代順序:order 參數(shù)可以是 'C'(行優(yōu)先)或 'F'(列優(yōu)先)。 過濾元素:flags 參數(shù)可以包含 'filtering' 和 'slicing' 等標(biāo)志,用于過濾元素。 轉(zhuǎn)換數(shù)據(jù)類型:op_dtypes 參數(shù)可以指定迭代過程中元素的數(shù)據(jù)類型。 使用步長:axes 和 step 參數(shù)可以用于指定迭代步長。
示例:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 迭代每個元素,并將其轉(zhuǎn)換為字符串
for element in np.nditer(arr, op_dtypes=['S']):
print(element)
示例:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 迭代行,跳過第一個元素
for row in np.nditer(arr[:, 1:], flags=['slicing']):
print(row)
示例:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
# 迭代列,每隔一個元素
for column in np.nditer(arr[:, ::2], flags=['slicing']):
print(column)
使用ndenumerate()進(jìn)行枚舉迭代
np.ndenumerate() 函數(shù)將每個元素與其索引一起返回。
示例:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
for (row_idx, col_idx), element in np.ndenumerate(arr):
print(f"({row_idx}, {col_idx}): {element}")
練習(xí)
使用 NumPy 數(shù)組迭代完成以下任務(wù):
- 創(chuàng)建一個 3x3 的二維數(shù)組,并打印每個元素。
- 創(chuàng)建一個 5x5x5 的三維數(shù)組,并打印每個元素的坐標(biāo)和值。
- 創(chuàng)建一個 10 個元素的一維數(shù)組,并計算數(shù)組元素的平均值。
- 創(chuàng)建一個 2x2 的二維數(shù)組,并將其轉(zhuǎn)置(行列互換)。
- 創(chuàng)建一個 3x4 的二維數(shù)組,并沿第 1 軸(行)堆疊兩個這樣的數(shù)組。
在評論中分享您的代碼和輸出。
Sure, here is the requested Markdown formatted content:
NumPy 合并數(shù)組
NumPy 提供了多種函數(shù)來合并數(shù)組,用于將多個數(shù)組的內(nèi)容連接成一個新數(shù)組。
合并數(shù)組
np.concatenate() 函數(shù)用于沿指定軸連接多個數(shù)組。
語法:
np.concatenate((arr1, arr2, ..., arrN), axis=None)
arr1, arr2, ..., arrN: 要合并的數(shù)組。 axis: 指定連接的軸。默認(rèn)為 0。
示例:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 合并兩個一維數(shù)組
arr = np.concatenate((arr1, arr2))
print(arr) # 輸出: [1 2 3 4 5 6]
# 沿行合并兩個二維數(shù)組
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
arr = np.concatenate((arr1, arr2), axis=1)
print(arr) # 輸出: [[ 1 2 5 6]
# [ 3 4 7 8]]
堆疊數(shù)組
np.stack() 函數(shù)用于沿新軸堆疊多個數(shù)組。
語法:
np.stack((arr1, arr2, ..., arrN), axis=None)
arr1, arr2, ..., arrN: 要堆疊的數(shù)組。 axis: 指定堆疊的軸。默認(rèn)為 0。
示例:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 沿第二軸堆疊兩個一維數(shù)組
arr = np.stack((arr1, arr2), axis=1)
print(arr) # 輸出: [[1 4]
# [2 5]
# [3 6]]
# 沿行堆疊
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
arr = np.stack((arr1, arr2), axis=0)
print(arr) # 輸出: [[1 2]
# [3 4]
# [5 6]
# [7 8]]
輔助函數(shù)
NumPy 提供了一些輔助函數(shù)來方便常見軸上的堆疊操作:
np.hstack():沿水平方向(行)堆疊數(shù)組。 np.vstack():沿垂直方向(列)堆疊數(shù)組。 np.dstack():沿第三軸(深度)堆疊數(shù)組。
示例:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 沿行堆疊
arr = np.hstack((arr1, arr2))
print(arr) # 輸出: [1 2 3 4 5 6]
# 沿列堆疊
arr = np.vstack((arr1, arr2))
print(arr) # 輸出: [[1 4]
# [2 5]
# [3 6]]
練習(xí)
使用 NumPy 的正確方法,將以下數(shù)組 arr1 和 arr2 合并成一個新數(shù)組。
import numpy as np arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) # 期望輸出: [1 4 2 5 3 6]
在評論中分享您的代碼和輸出。
最后
到此這篇關(guān)于一文詳解NumPy數(shù)組迭代與合并的文章就介紹到這了,更多相關(guān)NumPy數(shù)組迭代與合并內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python產(chǎn)生模擬數(shù)據(jù)faker庫的使用詳解
這篇文章主要介紹了python產(chǎn)生模擬數(shù)據(jù)faker庫的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Python-OpenCV實現(xiàn)圖像缺陷檢測的實例
本文將結(jié)合實例代碼,在Jupyter Notebook上使用Python+opencv實現(xiàn)如下圖像缺陷檢測。需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06
Python3實現(xiàn)從排序數(shù)組中刪除重復(fù)項算法分析
這篇文章主要介紹了Python3實現(xiàn)從排序數(shù)組中刪除重復(fù)項算法,結(jié)合3個完整實例形式分析了Python3針對排序數(shù)組的遍歷、去重、長度計算等相關(guān)操作技巧,需要的朋友可以參考下2019-04-04
利用Python批量壓縮png方法實例(支持過濾個別文件與文件夾)
這篇文章主要給大家介紹了關(guān)于利用Python批量壓縮png的相關(guān)資料,文中介紹的方法支持過濾個別文件與文件夾,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面跟著小編來一起看看吧。2017-07-07
Python使用melt和pivot實現(xiàn)DataFrame格式轉(zhuǎn)換
在數(shù)據(jù)處理與分析中,經(jīng)常遇到數(shù)據(jù)需要進(jìn)行格式轉(zhuǎn)換的情況,例如將數(shù)據(jù)從寬表格式轉(zhuǎn)換為長表格式,或?qū)?shù)據(jù)重新分組匯總,Pandas提供了豐富的reshape操作,尤其是melt和pivot這兩個函數(shù),使得DataFrame可以在寬表與長表之間高效轉(zhuǎn)換,本文介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
pyqt5之將textBrowser的內(nèi)容寫入txt文檔的方法
今天小編就為大家分享一篇pyqt5之將textBrowser的內(nèi)容寫入txt文檔的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06

