以下是Python numpy.broadcast_to()函数的详细攻略。
numpy.broadcast_to() 函数
numpy.broadcast_to() 函数将数组广播到新形状。它在原始数组上返回只读视图,不改变原始数组。
语法
numpy.broadcast_to(array, shape, subok=False)
参数说明
array
:要广播的数组。shape
:广播后的形状。subok
:布尔值,控制返回的数组是否可以是子类。默认值为 False。
返回值
- 返回一个只读视图,表示的是原始数组的广播版本。
示例1
import numpy as np
x = np.array([1, 2, 3])
y = np.broadcast_to(x, (3, 3))
print(x)
print(y)
输出:
[1 2 3]
[[1 2 3]
[1 2 3]
[1 2 3]]
在以上示例中,我们创建了一个一维数组 x
,然后使用 numpy.broadcast_to()
函数将它广播成了一个二维数组 y
。y
数组的形状为 (3, 3)
,即三行三列,每行都是 x
数组的复制。
示例2
import numpy as np
x = np.array([1, 2])
y = np.array([[3, 4], [5, 6]])
print(x.shape)
print(y.shape)
z = np.broadcast_to(x, y.shape)
print(z)
输出:
(2,)
(2, 2)
[[1 2 1 2]
[1 2 1 2]]
在以上示例中,我们创建了一个一维数组 x
,形状为 (2,)
,和一个二维数组 y
,形状为 (2, 2)
。然后我们使用 numpy.broadcast_to()
函数将 x
广播成了一个和 y
形状相同的数组 z
。由于 x
本身只有两个元素,所以它被广播成了一个两行两列的数组,每行都是 x
数组的复制。
注意,在以上示例中,y
数组的形状为 (2, 2)
,而不是 (2,)
,这是因为广播时需要在两个数组的形状中插入新的轴以进行广播。具体来说,在本例中将 x
数组的形状插入到 y
数组的第二个轴上得到了 (2, 1)
的形状,然后将其中一个轴的大小增加为2,最终形状变成了 (2, 2)
。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python numpy.broadcast_to()函数 - Python技术站