numpy的一个很大的优点就是通过向量化,大幅提高运算效率,这里介绍一些常用的向量化函数。
一、where函数
numpy.where
函数是三元表达式x if condition else y
的向量化版本,常用于根据一个数组来生成一个新的数组。
假设有两个数值数组和一个布尔值数组:
a = np.array([2, 4, 9, 16])
b = np.array([1, 3, 10, 17])
c = np.array([True, False, False, True])
当c
中的元素为True
时,取a
中的元素,否则取b
中的元素,那么就可以用numpy.where
函数:
r = np.where(c, a, b)
r # 结果:array([ 2, 3, 10, 16])
其中,a
、b
可以为数组或标量。
二、数学和统计方法
许多关于计算整个数组统计值或关于轴向数据的数学函数,可以作为数组类型的方法被调用。像mean
、sum
等函数可以接收一个可选参数axis
,这个参数可以用于计算给定轴向上的统计值,形成一个下降一维度的数组,即axis=0
表示列上的统计值,axis=1
表示行上的统计值:
对于下列数组ÿ