一文詳解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使用Pandas庫實現(xiàn)MySQL數(shù)據(jù)庫讀寫
本次分享將介紹如何在Python中使用Pandas庫實現(xiàn)MySQL數(shù)據(jù)庫的讀寫,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Python的子線程和子進(jìn)程是如何手動結(jié)束的?
今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著如何手動結(jié)束Python的子線程和子進(jìn)程展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Python統(tǒng)計學(xué)一數(shù)據(jù)的概括性度量詳解
這篇文章主要介紹了Python統(tǒng)計學(xué)一數(shù)據(jù)的概括性度量詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Linux CentOS Python開發(fā)環(huán)境搭建教程
這篇文章主要介紹了Linux CentOS Python開發(fā)環(huán)境搭建方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-11-11

