numpy广播机制

简介: numpy广播机制

广播机制用于处理两个不同维度数组之间的操作,这里只讨论不超过两维的数组广播机制。


【a】标量和数组的操作


当一个标量和数组进行运算时,标量会自动把大小扩充为数组大小,之后进行逐元素操作:

res = 3 * np.ones((2,2)) + 1
res
array([[4., 4.],
       [4., 4.]])
res = 1 / res
res
array([[0.25, 0.25],
       [0.25, 0.25]])

【b】二维数组之间的操作


当两个数组维度完全一致时,使用对应元素的操作,否则会报错,除非其中的某个数组的维度是m×1或者1×n,那么会扩充其具有1的维度为另一个数组对应维度的大小。例如,1×2数组和3×2数组做逐元素运算时会把第一个数组扩充为3×2,扩充时的对应数值进行赋值。但是,需要注意的是,如果第一个数组的维度是1×3,那么由于在第二维上的大小不匹配且不为1,此时报错。

res = np.ones((3,2))
res
array([[1., 1.],
       [1., 1.],
       [1., 1.]])
res * np.array([[2,3]]) # 第二个数组扩充第一维度为3
array([[2., 3.],
       [2., 3.],
       [2., 3.]])
res * np.array([[2],[3],[4]]) # 第二个数组扩充第二维度为2
array([[2., 2.],
       [3., 3.],
       [4., 4.]])
res * np.array([[2]]) # 等价于两次扩充,第二个数组两个维度分别扩充为3和2
array([[2., 2.],
       [2., 2.],
       [2., 2.]])

【c】一维数组与二维数组的操作


当一维数组A_k与二维数组B_{m,n}操作时,等价于把一维数组视作A_{1,k}的二维数组,使用的广播法则与【b】中一致,当k!=n且k,n都不是1时报错。

np.ones(3) + np.ones((2,3))
array([[2., 2., 2.],
       [2., 2., 2.]])
np.ones(3) + np.ones((2,1))
array([[2., 2., 2.],
       [2., 2., 2.]])
np.ones(1) + np.ones((2,3))
array([[2., 2., 2.],
       [2., 2., 2.]])


目录
相关文章
|
7月前
|
存储 数据处理 Python
NumPy数组运算:元素级与广播机制剖析
【4月更文挑战第17天】NumPy是Python数值计算库,提供元素级运算和广播机制。元素级运算针对数组每个元素单独计算,如加法、减法等;广播机制允许不同形状数组间运算,通过扩展小数组形状匹配大数组。了解这两点能帮助更好地运用NumPy进行数值计算和数据处理。
|
Python
python numpy中的广播机制
python numpy中的广播机制
75 0
|
vr&ar 索引 Python
Python 之 NumPy 切片索引和广播机制
Python 之 NumPy 切片索引和广播机制
|
存储 C语言 索引
numpy的使用说明(五):数组的广播机制、数组元素的底层存储(二)
numpy的使用说明(五):数组的广播机制、数组元素的底层存储(二)
numpy的使用说明(五):数组的广播机制、数组元素的底层存储(二)
|
Python
Numpy中的广播机制,你确定正确理解了吗?
Numpy其提供了大量常用的数值计算功能,当然这些数值计算函数大多依赖于其核心的数据结构:ndarray,也就是N维数组。而关于这个ndarray,有一个重要特性是广播机制,也正是整个广播机制,使得Numpy中的数值计算功能更加丰富和强大。那么问题来了,你是否已经正确理解了这个广播机制呢?
165 0
Numpy中的广播机制,你确定正确理解了吗?
|
存储 Python
numpy的使用说明(五):数组的广播机制、数组元素的底层存储(一)
numpy的使用说明(五):数组的广播机制、数组元素的底层存储(一)
numpy的使用说明(五):数组的广播机制、数组元素的底层存储(一)
|
3月前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
109 0
|
4月前
|
机器学习/深度学习 数据处理 计算机视觉
NumPy实践宝典:Python高手教你如何轻松玩转数据处理!
【8月更文挑战第22天】NumPy是Python科学计算的核心库,专长于大型数组与矩阵运算,并提供了丰富的数学函数。首先需安装NumPy (`pip install numpy`)。之后可通过创建数组、索引与切片、执行数学与逻辑运算、变换数组形状及类型、计算统计量和进行矩阵运算等操作来实践学习。NumPy的应用范围广泛,从基础的数据处理到图像处理都能胜任,是数据科学领域的必备工具。
66 0
|
1月前
|
存储 数据处理 Python
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第27天】在科学计算和数据分析领域,Python凭借简洁的语法和强大的库支持广受欢迎。NumPy和SciPy作为Python科学计算的两大基石,提供了高效的数据处理和分析工具。NumPy的核心功能是N维数组对象(ndarray),支持高效的大型数据集操作;SciPy则在此基础上提供了线性代数、信号处理、优化和统计分析等多种科学计算工具。结合使用NumPy和SciPy,可以显著提升数据处理和分析的效率,使Python成为科学计算和数据分析的首选语言。
50 3