📜  Python| Numpy.broadcast_arrays() 方法(1)

📅  最后修改于: 2023-12-03 15:19:14.600000             🧑  作者: Mango

Python | Numpy.broadcast_arrays()方法

在NumPy中,有时需要对两个数组进行操作,但这两个数组的形状(shape)并不相同。在这种情况下,我们可以使用广播(broadcasting)机制。Numpy中的broadcast_arrays()方法允许您将不同形状的数组广播到相同的形状,以进行各种操作。

语法
numpy.broadcast_arrays(arr1, arr2, subok=False)

参数说明:

  • arr1, arr2:要广播的数组(input arrays)。
  • subok:(默认为False):如果为True,将返回输入的子类。

**返回值:**广播后的数组(broadcasted arrays)。

示例
import numpy as np

# 创建一个2x2的数组
arr1 = np.array([[1,2], [3,4]])

# 创建一个2x2x2的数组
arr2 = np.array([[[1,2], [3,4]], [[5,6], [7,8]]])

# 通过调用broadcast_arrays()函数来广播这两个数组
bcast_array = np.broadcast_arrays(arr1, arr2)

# 打印广播后的数组
print(bcast_array)

输出结果为:

[array([[[1, 2],
        [3, 4]],

       [[1, 2],
        [3, 4]]]), 
 array([[[1, 2],
        [3, 4]],

       [[5, 6],
        [7, 8]]])]

上面的例子展示了如何使用broadcast_arrays()方法将两个不同形状的数组广播到相同的形状,以进行操作。

另一个示例:

import numpy as np

# 创建一个1x4的数组
arr1 = np.array([1,2,3,4])

# 创建一个1x1x4的数组
arr2 = np.array([[[5,6,7,8]]])

# 通过调用broadcast_arrays()函数来广播这两个数组
bcast_array = np.broadcast_arrays(arr1, arr2)

# 打印广播后的数组
print(bcast_array)

输出结果为:

[array([[[1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4],
        [1, 2, 3, 4]]]), 
 array([[[5, 6, 7, 8],
        [5, 6, 7, 8],
        [5, 6, 7, 8],
        [5, 6, 7, 8]]])]

这个例子展示了如何使用broadcast_arrays()方法将一个形状为(4,)的数组广播到一个形状为(1,1,4)的数组,以进行操作。

以上例子只是Numpy广播机制的一小部分。在NumPy中,广播机制的使用相当广泛,可以使代码更简洁,性能更佳。

注:若要更好的阅读体验,推荐在jupyter notebook中运行以上代码片段。