【python】ndarray的广播功能

目录

0.环境

1.背景简介

2.ndarray的广播功能

2.1概念

2.2意义

2.3使用前提

2.4举例

2.5完整代码


0.环境

windows + jupyter notebook验证代码

1.背景简介

我是在查询【ndarray和array的区别】时,看到了“广播功能”这个词,之前只在网络的相关定义上了解广播这个词,但没想到,数组上也有应用,但其完全不是一种意思,特此记录一下使用方式。

简介一下ndarray和array的区别:

在Python中,array是Python标准库中提供的一种数组类型,而ndarray是NumPy库中提供的一种多维数组类型。虽然它们都可以用来存储数值数据,但它们之间存在一些区别:
1)array类型只能存储一维数组,而ndarray类型可以存储多维数组。
2)array类型只能存储相同类型的数据,而ndarray类型可以存储不同类型的数据。
3)ndarray类型支持广播功能,这使得可以对不同形状的数组进行数学运算。array类型不支持广播功能。
4)ndarray类型提供了许多用于数学和科学计算的函数和方法,例如线性代数、傅里叶变换、随机数生成等等。array类型只提供了一些基本的数组操作方法。

2.ndarray的广播功能

2.1概念

当对两个形状不同的数组进行算术运算时,例如加法、减法、乘法和除法,NumPy会自动将较小的数组广播(broadcast)到较大数组的形状,以匹配它们的形状。这种自动广播的功能被称为广播(broadcasting)。

2.2意义

这意味着,您可以对不同形状的数组进行数学运算,而无需显式地扩展数组的形状或使用循环来匹配它们的形状。这使得在NumPy中进行数学运算更加方便和高效。

2.3使用前提

数组中的元素(元组)的维数需要相等,比如下面的例子,多维数组中共有三个元组,[1,2,3]、[4,5,6]、[7,8,9],每个里面都是三个元素,那么与之相计算的数组,也必须是三个元素。一旦a中增加元组的维数([1.2.3]变成[1,2,3,4]),或者b中增加元组的维数(变成[10,20,30,40]),都会导致编译器的报错。

【python】ndarray的广播功能_第1张图片
【python】ndarray的广播功能_第2张图片

2.4举例

假设有一个形状为(3, 3)的数组和一个形状为(1, 3)的数组a和b:

a = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])

b = np.array([[10, 20, 30]])

可以使用广播功能将数组b广播到与数组a相同的形状,然后进行数学运算:

c = a + b

print(c)

结果:

import numpy as np

a = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])

b = np.array([[10, 20, 30]])
c = a + b
print(c)

解释:在这个例子中,数组b被广播到一个形状为(3, 3)的数组,以匹配数组a的形状。然后,对两个数组进行了加法运算。

2.5完整代码

import numpy as np

a = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])

b = np.array([[10, 20, 30]])
c = a + b
print(c)

--END--

你可能感兴趣的:(jupyter,notebook,+,python,python,numpy)