一文詳解NumPy數(shù)組迭代與合并
NumPy 數(shù)組迭代
NumPy 數(shù)組迭代是訪問(wèn)和處理數(shù)組元素的重要方法。它允許您逐個(gè)或成組地遍歷數(shù)組元素。
基本迭代
我們可以使用 Python 的基本 for
循環(huán)來(lái)迭代 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ù)組迭代:
對(duì)于更高維度的數(shù)組,我們可以使用嵌套循環(huán)來(lái)迭代每個(gè)維度。
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)行高級(jí)迭代
NumPy 提供了 np.nditer()
函數(shù),用于更復(fù)雜的迭代操作。它允許您:
指定迭代順序:order
參數(shù)可以是 'C'
(行優(yōu)先)或 'F'
(列優(yōu)先)。 過(guò)濾元素:flags
參數(shù)可以包含 'filtering'
和 'slicing'
等標(biāo)志,用于過(guò)濾元素。 轉(zhuǎn)換數(shù)據(jù)類型:op_dtypes
參數(shù)可以指定迭代過(guò)程中元素的數(shù)據(jù)類型。 使用步長(zhǎng):axes
和 step
參數(shù)可以用于指定迭代步長(zhǎng)。
示例:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) # 迭代每個(gè)元素,并將其轉(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]]) # 迭代行,跳過(guò)第一個(gè)元素 for row in np.nditer(arr[:, 1:], flags=['slicing']): print(row)
示例:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) # 迭代列,每隔一個(gè)元素 for column in np.nditer(arr[:, ::2], flags=['slicing']): print(column)
使用ndenumerate()進(jìn)行枚舉迭代
np.ndenumerate()
函數(shù)將每個(gè)元素與其索引一起返回。
示例:
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)建一個(gè) 3x3 的二維數(shù)組,并打印每個(gè)元素。
- 創(chuàng)建一個(gè) 5x5x5 的三維數(shù)組,并打印每個(gè)元素的坐標(biāo)和值。
- 創(chuàng)建一個(gè) 10 個(gè)元素的一維數(shù)組,并計(jì)算數(shù)組元素的平均值。
- 創(chuàng)建一個(gè) 2x2 的二維數(shù)組,并將其轉(zhuǎn)置(行列互換)。
- 創(chuàng)建一個(gè) 3x4 的二維數(shù)組,并沿第 1 軸(行)堆疊兩個(gè)這樣的數(shù)組。
在評(píng)論中分享您的代碼和輸出。
Sure, here is the requested Markdown formatted content:
NumPy 合并數(shù)組
NumPy 提供了多種函數(shù)來(lái)合并數(shù)組,用于將多個(gè)數(shù)組的內(nèi)容連接成一個(gè)新數(shù)組。
合并數(shù)組
np.concatenate()
函數(shù)用于沿指定軸連接多個(gè)數(shù)組。
語(yǔ)法:
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]) # 合并兩個(gè)一維數(shù)組 arr = np.concatenate((arr1, arr2)) print(arr) # 輸出: [1 2 3 4 5 6] # 沿行合并兩個(gè)二維數(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ù)用于沿新軸堆疊多個(gè)數(shù)組。
語(yǔ)法:
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]) # 沿第二軸堆疊兩個(gè)一維數(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ù)來(lái)方便常見(jiàn)軸上的堆疊操作:
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
合并成一個(gè)新數(shù)組。
import numpy as np arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) # 期望輸出: [1 4 2 5 3 6]
在評(píng)論中分享您的代碼和輸出。
最后
到此這篇關(guān)于一文詳解NumPy數(shù)組迭代與合并的文章就介紹到這了,更多相關(guān)NumPy數(shù)組迭代與合并內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python編程使用selenium模擬登陸淘寶實(shí)例代碼
這篇文章主要介紹了python編程使用selenium模擬登陸淘寶實(shí)例代碼,涉及selenium的簡(jiǎn)介及Windows下的安裝,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Python淺復(fù)制中對(duì)象生存周期實(shí)例分析
這篇文章主要介紹了Python淺復(fù)制中對(duì)象生存周期,結(jié)合實(shí)例形式分析了Python面向?qū)ο笾械臏\復(fù)制操作時(shí)對(duì)象的生命周期問(wèn)題,需要的朋友可以參考下2018-04-04tensorflow與numpy的版本兼容性問(wèn)題的解決
這篇文章主要介紹了tensorflow與numpy的版本兼容性問(wèn)題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01解決tensorflow1.x版本加載saver.restore目錄報(bào)錯(cuò)的問(wèn)題
今天小編就為大家分享一篇解決tensorflow1.x版本加載saver.restore目錄報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python使用missingno模塊輕松處理數(shù)據(jù)缺失
missingno是一個(gè)基于Python的開(kāi)源數(shù)據(jù)可視化工具,旨在幫助數(shù)據(jù)分析師和科學(xué)家更好地理解和處理數(shù)據(jù)缺失,下面我們就來(lái)看看如何使用missingno處理數(shù)據(jù)缺失吧2024-02-02Python爬蟲(chóng)之Spider類用法簡(jiǎn)單介紹
這篇文章主要介紹了Python爬蟲(chóng)之Spider類用法簡(jiǎn)單介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Python基于Flask框架配置依賴包信息的項(xiàng)目遷移部署
這篇文章主要介紹了Python基于Flask框架配置依賴包信息的項(xiàng)目遷移部署小技巧,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03jupyter notebook 使用過(guò)程中python莫名崩潰的原因及解決方式
這篇文章主要介紹了jupyter notebook 使用過(guò)程中python莫名崩潰的原因及解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04