【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]),都会导致编译器的报错。

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--

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wyn_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值