前言
NumPy是Python的一个扩展库,负责数组和矩阵运行。相较于传统Python,NumPy运行效率高,速度快,是利用Python处理数据必不可少的工具。
这个NumPy快速入门系列分为四篇,包含了NumPy大部分基础知识,每篇阅读时间不长,但内容含量高。大家最好亲自码一遍代码,这样可以更有收获。
前面的内容传送门:
Python进阶之NumPy快速入门(一)
概要
- 学会数组的运算,轻松应对数学公式
- 学会数组的索引,瞬间定位数组位置
- 学会数组的迭代,快速遍历数组元素
第四节.NumPy数组运算
基础运算
NumPy数组的基本运算,即加减乘除。我们分成两种情况:
- 数组形状相同时,即对对应元素进行运算,
- 数组形状不一致的时候有广播机制来弥补
我们先看两个形状一样的数组基础运算:
代码:
import numpy as np
a = np.array([1, 2, 3])
b = np.arange(10,13)
print (a+b, a-b)
print (a*b, a/b)
讲解:
我们建立了a,b两个一维数组,分别采用直接创建和用arange函数创建的方法。对于同样大小的数组之间的加减乘除运算,运算规则是对位元素一一对应。也就是说a的第一个元素和b的第一个元素进行运算,a的第二个元素和b的第二个元素进行运算,以此类推,所有对位的元素进行运算。
运行结果:
[11 13 15] [-9 -9 -9]
[10 22 36] [0.1 0.18181818 0.25]
广播机制
如果a,b两个数组的形状(shape)并不一样,那么运算规则又是什么样子的呢?Numpy对于两个不同形状的数组的运算采用一种叫做广播(broadcast)的机制负责运算&