Python numpy.broadcast_to()函数

  • Post category:Python

当我们需要将数组内容广播到新形状时,我们可以使用NumPy提供的broadcast_to()函数。

函数定义

numpy.broadcast_to(array, shape, subok=False)
  • array:需要广播成新形状的数组
  • shape:新数组的形状
  • subok:默认为False,表示返回的数组强制为基本类型。如果为True,则返回子类数组。

返回值:新形状的数组

函数示例

示例1:一维数组广播到二维数组

import numpy as np

# 定义一维数组,并广播成二维数组
arr = np.array([1, 2, 3])
arr_broadcasted = np.broadcast_to(arr, (3, 3))

# 打印数组
print("原数组arr为:\n", arr)
print("广播后的数组arr_broadcasted为:\n", arr_broadcasted)

输出结果为:

原数组arr为:
 [1 2 3]
广播后的数组arr_broadcasted为:
 [[1 2 3]
 [1 2 3]
 [1 2 3]]

通过broadcast_to()函数,将原本形状为(3,)的一维数组广播成形状为(3,3)的二维数组。

示例2:广播成非常规形状的数组

import numpy as np

# 定义一维数组,并广播成三维数组
arr = np.array([1, 2, 3])
arr_broadcasted = np.broadcast_to(arr, (2, 2, 3))

# 打印数组
print("原数组arr为:\n", arr)
print("广播后的数组arr_broadcasted为:\n", arr_broadcasted)

输出结果为:

原数组arr为:
 [1 2 3]
广播后的数组arr_broadcasted为:
 [[[1 2 3]
  [1 2 3]]

 [[1 2 3]
  [1 2 3]]]

通过broadcast_to()函数,将原本形状为(3,)的一维数组广播成形状为(2,2,3)的三维数组。

除了以上两个示例,广播的形状可以非常灵活,只要是合法的形状,broadcast_to()函数都可以胜任。