Python numpy.broadcast_to()函数

  • Post category:Python

下面是Python numpy.broadcast_to()函数的详细介绍和示例:

函数介绍

numpy.broadcast_to(array, shape, subok=False)函数将输入数组广播到新形状。它返回一个新的数组,其形状是指定形状,且该数组中所有值都和原始数组相同。

函数参数:

  • array:必须是数组类型。输入的数组。
  • shape:必须是元组类型。用于指定广播后的形状。
  • subok:可选参数。默认值为False,表示在返回的数组强制生成子类或类型的数组。如果为True,则返回输入数组的子类。

函数用法示例

示例1

下面是一个简单的示例:

import numpy as np

a = np.array([1, 2, 3])
b = np.broadcast_to(a, (3, 3))

print("原始数组:")
print(a)

print("\n广播后的数组:")
print(b)

输出:

原始数组:
[1 2 3]

广播后的数组:
[[1 2 3]
 [1 2 3]
 [1 2 3]]

解释:

在上面的示例中,我们定义了一个一维数组 a,然后使用 numpy.broadcast_to() 函数将其广播为一个二维数组 b,该数组的形状为 (3, 3)。 由于原始数组 a 只有 3 个元素,因此在广播的过程中,它被复制了两次以满足输出的形状要求。

示例2

下面是一个更复杂的示例:

import numpy as np

a = np.array([1, 2, 3])
b = np.array([[10, 20], [30, 40]])

print("原始数组 a:")
print(a)

print("\n原始数组 b:")
print(b)

print("\n将数组 a 广播为数组 b 的形状:")
print(np.broadcast_to(a, b.shape))

输出:

原始数组 a:
[1 2 3]

原始数组 b:
[[10 20]
 [30 40]]

将数组 a 广播为数组 b 的形状:
[[ 1  2]
 [ 3  1]]

解释:

在上面的示例中,我们有两个数组 ab,并且想将 a 广播为 b 的形状。 我们使用 numpy.broadcast_to() 函数做到了这一点。 输出的数组形状为 (2, 2),它是由将 a 复制到合适形状所得到的。

以上就是Python numpy.broadcast_to()函数的完整介绍及示例。希望可以帮助到你。