好上好 发表于 2024-5-14 20:24:25

NumPy 数组迭代与合并详解

NumPy 数组迭代

NumPy 数组迭代是访问和处理数组元素的重要方法。它允许您逐个或成组地遍历数组元素。
基本迭代

我们可以使用 Python 的基本 for 循环来迭代 NumPy 数组。
一维数组迭代:
import numpy as np

arr = np.array()

for element in arr:
    print(element)二维数组迭代:
import numpy as np

arr = np.array([, , ])

for row in arr:
    for element in row:
      print(element)多维数组迭代:
对于更高维度的数组,我们可以使用嵌套循环来迭代每个维度。
import numpy as np

arr = np.array([[, ], [, ]])

for cube in arr:
    for row in cube:
      for element in row:
            print(element)使用 nditer() 进行高级迭代

NumPy 提供了 np.nditer() 函数,用于更复杂的迭代操作。它允许您:
指定迭代顺序:order 参数可以是 'C'(行优先)或 'F'(列优先)。
过滤元素:flags 参数可以包含 'filtering' 和 'slicing' 等标志,用于过滤元素。
转换数据类型:op_dtypes 参数可以指定迭代过程中元素的数据类型。
使用步长:axes 和 step 参数可以用于指定迭代步长。
示例:
import numpy as np

arr = np.array([, ])

# 迭代每个元素,并将其转换为字符串
for element in np.nditer(arr, op_dtypes=['S']):
    print(element)示例:
import numpy as np

arr = np.array([, ])

# 迭代行,跳过第一个元素
for row in np.nditer(arr[:, 1:], flags=['slicing']):
    print(row)示例:
import numpy as np

arr = np.array([, ])

# 迭代列,每隔一个元素
for column in np.nditer(arr[:, ::2], flags=['slicing']):
    print(column)使用 ndenumerate() 进行枚举迭代

np.ndenumerate() 函数将每个元素与其索引一起返回。
示例:
import numpy as np

arr = np.array([, ])

for (row_idx, col_idx), element in np.ndenumerate(arr):
    print(f"({row_idx}, {col_idx}): {element}")练习

使用 NumPy 数组迭代完成以下任务:

[*]创建一个 3x3 的二维数组,并打印每个元素。
[*]创建一个 5x5x5 的三维数组,并打印每个元素的坐标和值。
[*]创建一个 10 个元素的一维数组,并计算数组元素的平均值。
[*]创建一个 2x2 的二维数组,并将其转置(行列互换)。
[*]创建一个 3x4 的二维数组,并沿第 1 轴(行)堆叠两个这样的数组。
在评论中分享您的代码和输出。
Sure, here is the requested Markdown formatted content:
NumPy 合并数组

NumPy 提供了多种函数来合并数组,用于将多个数组的内容连接成一个新数组。
合并数组

np.concatenate() 函数用于沿指定轴连接多个数组。
语法:
np.concatenate((arr1, arr2, ..., arrN), axis=None)arr1, arr2, ..., arrN: 要合并的数组。
axis: 指定连接的轴。默认为 0。
示例:
import numpy as np

arr1 = np.array()
arr2 = np.array()

# 合并两个一维数组
arr = np.concatenate((arr1, arr2))
print(arr)# 输出:

# 沿行合并两个二维数组
arr1 = np.array([, ])
arr2 = np.array([, ])
arr = np.concatenate((arr1, arr2), axis=1)
print(arr)# 输出: [[ 1256]
                        #[ 3478]]堆叠数组

np.stack() 函数用于沿新轴堆叠多个数组。
语法:
np.stack((arr1, arr2, ..., arrN), axis=None)arr1, arr2, ..., arrN: 要堆叠的数组。
axis: 指定堆叠的轴。默认为 0。
示例:
import numpy as np

arr1 = np.array()
arr2 = np.array()

# 沿第二轴堆叠两个一维数组
arr = np.stack((arr1, arr2), axis=1)
print(arr)# 输出: [
                        #
                        #]

# 沿行堆叠
arr1 = np.array([, ])
arr2 = np.array([, ])
arr = np.stack((arr1, arr2), axis=0)
print(arr)# 输出: [
                        #
                        #
                        #]辅助函数

NumPy 提供了一些辅助函数来方便常见轴上的堆叠操作:
np.hstack():沿水平方向(行)堆叠数组。
np.vstack():沿垂直方向(列)堆叠数组。
np.dstack():沿第三轴(深度)堆叠数组。
示例:
import numpy as np

arr1 = np.array()
arr2 = np.array()

# 沿行堆叠
arr = np.hstack((arr1, arr2))
print(arr)# 输出:

# 沿列堆叠
arr = np.vstack((arr1, arr2))
print(arr)# 输出: [
                        #
                        #]练习

使用 NumPy 的正确方法,将以下数组 arr1 和 arr2 合并成一个新数组。
import numpy as np

arr1 = np.array()
arr2 = np.array()

# 期望输出: 在评论中分享您的代码和输出。
最后

为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎点赞、收藏、关注

来源:https://www.cnblogs.com/xiaowange/p/18192255
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: NumPy 数组迭代与合并详解