一文详解NumPy数组迭代与合并

  目录

  NumPy 数组迭代

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

  基本迭代

  我们可以使用 Python 的基本 循环来迭代 NumPy 数组。

  一维数组迭代:

  import numpy as np

  arr = np.array([1, 2, 3, 4, 5])

  for element in arr:

  print(element)

  二维数组迭代:

  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)

  多维数组迭代:

  对于更高维度的数组,我们可以使用嵌套循环来迭代每个维度。

  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() 进行高级迭代

  NumPy 提供了 函数,用于更复杂的迭代操作。它允许您:

  指定迭代顺序: 参数可以是 (行优先)或 (列优先)。 过滤元素: 参数可以包含 和 等标志,用于过滤元素。 转换数据类型: 参数可以指定迭代过程中元素的数据类型。 使用步长: 和 参数可以用于指定迭代步长。

  示例:

  import numpy as np

  arr = np.array([[1, 2, 3], [4, 5, 6]])

  # 迭代每个元素,并将其转换为字符串

  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()进行枚举迭代

  函数将每个元素与其索引一起返回。

  示例:

  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}")

  练习

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

  在评论中分享您的代码和输出。

  Sure, here is the requested Markdown formatted content:

  NumPy 合并数组

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

  合并数组

  函数用于沿指定轴连接多个数组。

  语法:

  np.concatenate((arr1, arr2, ..., arrN), axis=None)

  : 要合并的数组。 : 指定连接的轴。默认为 0。

  示例:

  import numpy as np

  arr1 = np.array([1, 2, 3])

  arr2 = np.array([4, 5, 6])

  # 合并两个一维数组

  arr = np.concatenate((arr1, arr2))

  print(arr) # 输出: [1 2 3 4 5 6]

  # 沿行合并两个二维数组

  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]]

  堆叠数组

  函数用于沿新轴堆叠多个数组。

  语法:

  np.stack((arr1, arr2, ..., arrN), axis=None)

  : 要堆叠的数组。 : 指定堆叠的轴。默认为 0。

  示例:

  import numpy as np

  arr1 = np.array([1, 2, 3])

  arr2 = np.array([4, 5, 6])

  # 沿第二轴堆叠两个一维数组

  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]]

  辅助函数

  NumPy 提供了一些辅助函数来方便常见轴上的堆叠操作:

  :沿水平方向(行)堆叠数组。 :沿垂直方向(列)堆叠数组。 :沿第三轴(深度)堆叠数组。

  示例:

  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]]

  练习

  使用 NumPy 的正确方法,将以下数组 和 合并成一个新数组。

  import numpy as np

  arr1 = np.array([1, 2, 3])

  arr2 = np.array([4, 5, 6])

  # 期望输出: [1 4 2 5 3 6]

  在评论中分享您的代码和输出。

  最后

  到此这篇关于一文详解NumPy数组迭代与合并的文章就介绍到这了,更多相关NumPy数组迭代与合并内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

  您可能感兴趣的文章: