Numpy broadcast_to() 函数
Numpy broadcast_to() 函数将数组广播到新的形状。它模拟了广播机制,即在指定形状的数组上创建新视图,而无需实际复制数据。
这对于创建兼容形状的数组以进行操作而无需复制数据非常有用。
语法
以下是 numpy.broadcast_to 函数的语法 -
numpy.broadcast_to(array, shape, subok=False)
参数
以下是 numpy.broadcast_to 函数的参数 -
- array: 要广播的数组。
- shape(tuple): 广播到的形状数组将被广播。
- subok(bool, 可选): 如果此参数为 True,则子类将被传递,否则返回的数组将被强制为基类数组。默认值为 False。
返回值
返回具有给定形状的原始数组的只读视图。它将具有一个设置为 True 的只读属性。
示例 1
以下是使用 Numpy broadcast_to() 函数将一维数组广播为二维数组的示例。在此示例中,一维数组 [1, 2, 3] 被广播到形状为 (3, 3) 的二维数组。
import numpy as np # 原始数组 arr = np.array([1, 2, 3]) # 广播到形状为 (3, 3) 的数组 broadcasted_arr = np.broadcast_to(arr, (3, 3)) print("原始数组:") print(arr) print(" 广播后的数组:") print(broadcasted_arr)
输出
原始数组: [1 2 3] 广播后的数组: [[1 2 3] [1 2 3] [1 2 3]]
示例 2
我们可以借助 numpy.broadcast_to() 函数将二维数组广播到更高维度。这里,二维数组 [[1, 2], [3, 4]] 被广播为形状为 (2, 2, 2) 的三维数组 -
import numpy as np # 原始二维数组 arr = np.array([[1, 2], [3, 4]]) # 广播为形状为 (2, 2, 2) broadcasted_arr = np.broadcast_to(arr, (2, 2, 2)) print("原始数组:") print(arr) print(" 广播后的数组:") print(broadcasted_arr)
输出
原始数组: [[1 2] [3 4]] 广播后的数组: [[[1 2] [3 4]] [[1 2] [3 4]]]
示例 3
以下示例展示了 numpy.broadcast_to() 函数如何通过扩展数组内容(不重复数据)有效地将给定数组复制到新的形状 -
import numpy as np a = np.arange(4).reshape(1,4) print('原始数组:') print(a) print(' ') print('应用 broadcast_to 函数后:') print(np.broadcast_to(a,(4,4)))
输出
原始数组: [[0 1 2 3]] 应用 broadcast_to 函数后: [[0 1 2 3] [0 1 2 3] [0 1 2 3] [0 1 2 3]]