NumPy broadcast_to() 函数



Numpy broadcast_to() 函数用于将数组广播到新的形状。它模仿广播机制,在数组上创建具有指定形状的新视图,而无需实际复制数据。

这对于在不复制数据的情况下使数组具有兼容的形状以进行运算很有用。

语法

以下是 numpy.broadcast_to 函数的语法:

numpy.broadcast_to(array, shape, subok=False)

参数

以下是 numpy.broadcast_to 函数的参数:

  • array: 要广播的数组。
  • shape(元组): 要广播到的数组形状。
  • subok(布尔值,可选): 如果此参数为 True,则子类将被传递,否则返回的数组将强制为基类数组。默认值为 False。

返回值

它返回具有给定形状的原始数组的只读视图。它将具有一个设置为 True 的只读属性。

示例 1

以下是使用 NumPy broadcast_to() 函数将一维数组广播到二维形状的示例。在此示例中,一维数组 [1, 2, 3] 被广播到形状为 (3, 3) 的二维数组。

import numpy as np

# Original array
arr = np.array([1, 2, 3])

# Broadcasting to shape (3, 3)
broadcasted_arr = np.broadcast_to(arr, (3, 3))

print("Original array:")
print(arr)
print("\nBroadcasted array:")
print(broadcasted_arr)

输出

Original array:
[1 2 3]

Broadcasted array:
[[1 2 3]
 [1 2 3]
 [1 2 3]]

示例 2

我们可以使用 numpy.broadcast_to() 函数将二维数组广播到更高维度的形状。这里,二维数组 [[1, 2], [3, 4]] 被广播到形状为 (2, 2, 2) 的三维数组:

import numpy as np

# Original 2D array
arr = np.array([[1, 2], [3, 4]])

# Broadcasting to shape (2, 2, 2)
broadcasted_arr = np.broadcast_to(arr, (2, 2, 2))

print("Original array:")
print(arr)
print("\nBroadcasted array:")
print(broadcasted_arr)

输出

Original array:
[[1 2]
 [3 4]]

Broadcasted array:
[[[1 2]
  [3 4]]

 [[1 2]
  [3 4]]]

示例 3

以下示例显示了 numpy.broadcast_to() 函数如何通过扩展其内容而无需复制数据来有效地将给定数组复制到新形状:

import numpy as np 
a = np.arange(4).reshape(1,4) 

print('The original array:') 
print(a)
print('\n')  

print('After applying the broadcast_to function:') 
print(np.broadcast_to(a,(4,4)))

输出

The original array:
[[0 1 2 3]]


After applying the broadcast_to function:
[[0 1 2 3]
 [0 1 2 3]
 [0 1 2 3]
 [0 1 2 3]]
numpy_array_manipulation.htm
广告