美文网首页Numpy
NumPy基础之数组常用函数(一)

NumPy基础之数组常用函数(一)

作者: 5f2a6061653d | 来源:发表于2018-09-15 20:53 被阅读7次

通用函数

通用函数(ufunc)是对数组中的数据执行元素级运算的函数。常用的一元通用函数如下表所示。

函数名 说明
abs、fabs 计算整数、浮点数或复数的绝对值,对于非复数值,可以使用更快的fabs
sqrt 计算各元素的平方根,相当于arr ** 0.5
square 计算各元素的平方,相当于arr ** 2
exp 计算各元素的指数ex
log、log10、log2、log1p 分别是自然对数(以e为底)、以10为底的log、以2为底的log、log(1+x)
sign 计算各元素的正负号:1(正数)、0(零)、-1(负数)
ceil 计算各元素的ceiling值,即大于等于该值的最小整数
floor 计算各元素的floor值,即小于等于该值的最大整数
rint 将各元素值四舍五入到最接近的整数,并保留之前的dtype
modf 将数组的小数和整数部分以两个独立数组的形式返回
isnan 返回一个值为NaN的布尔型数组
isfinite、isinf 分别返回一个表示“哪些元素是有穷的”或“哪些元素是无穷的布尔型数组”
cos、cosh、sin、sinh、tan、tanh 普通型和双曲型三角函数
arccos、arccosh、arcsin、arcsinh、arctan、arctanh 反三角函数
logical_not 计算各元素not x的真值,相当于-arr

二元通用函数如下表所示。

函数名 说明
add 将数组中对应元素相加
subtract 从第一个数组中减去第二个数组中元素
multiple 数组元素相乘(即点乘)
divide、floor_divide 除法或向下圆整除法
power 对第一个数组中元素A,根据第二个数组中的相应元素B,计算AB
maximum、fmax 元素级最大值计算,fmax将忽略NaN
minimum、fmin 元素级最小值计算,fmin将忽略NaN
mod 元素级的求模运算(除法的余数)
copysign 将第二个数组中的值的符号复制给第一个数组中值
greater、greater_equal、less、less_equal、equal、not_equal 执行元素级的比较运算符,最终产生布尔型数组,相当于中缀运算符>、>=、<、<=、==、!=
logical_and、logical_or、logical_xor 执行元素级的真值逻辑运算,相当于中缀运算符&、 、^

上述两表是常用的元素级一元、二元函数,接下来以sqrt()函数和square()函数为例讲解通用函数的用法,具体示例如下所示:

In [1]: import numpy as np
In [2]: arr = np.arange(1,10).reshape(3,3)
In [3]: sq = np.sqrt(arr)
In [4]: squ = np.square(arr)

上述代码是通用函数sqrt()和square()函数的使用,其中In [2]是创建一个3行3列的数组,并将其赋值给变量arr;In [3]是sqrt()函数的使用,并将结果赋值给变量sq;In [4]是square()函数的使用,并将结果赋值给变量squ。变量sq和squ的运行结果如下所示:

In [5]: sq
Out[5]:
array([[1.    , 1.41421356, 1.73205081],
 [2. , 2.23606798, 2.44948974],
 [2.64575131, 2.82842712, 3. ]])
In [6]: squ
Out[6]:
array([[ 1, 4, 9],
 [16, 25, 36],
 [49, 64, 81]], dtype=int32)

从上述运行结果可以看出,变量sq是数组arr中的所有数值的平方根,而变量squ是数组arr中所有数值的平方数,并且包含数组的数据类型。

数组级别的函数

数组级别的函数一般是基本数组统计函数,例如,聚合类的函数求和(sum)、求平均数(mean)等,基本的数组统计方法如下表所示。

方法名 说明
sum 对数组中全部或某轴向的元素求和,零长度的数组的sum为0
mean 算术平均数,零长度的数组的mean为NaN
std、var 分别为标准差和方差,自由度可调(默认为n)
min、max 最大值和最小值
argmin、argmax 分别为最大和最小元素的索引
cumsum 所有元素的累计和
cumprod 所有元素的累计积

上表是基本的数组统计方法,接下来以sum()函数和mean()函数为例讲解数组级别函数的用法,具体示例如下所示:

In [21]: import numpy as np
In [22]: arr = np.random.randint(10,size = 20).reshape(4,5)
In [23]: sa = arr.sum()
In [24]: sac = arr.sum(0)
In [25]: ma = arr.mean()
In [26]: mar = arr.mean(axis = 1)

上述代码是数组级别函数sum()和mean()的使用,其中In [22]是创建了一个4行5列的随机数组,并将其赋值给变量arr;In [23]是计算数组arr的总和,并将结果赋值给变量sa;In [24]是计算数组arr每一列的和,并将结果赋值给变量sac;In [25]是计算数组arr的平均数,并将结果赋值给变量ma;In [26]是计算数组arr每一行的平均数,并将最终结果赋值给变量mar。各变量的运行结果如下所示:

In [27]: arr
Out[27]:
array([[2, 6, 7, 7, 0],
 [3, 0, 6, 1, 8],
 [8, 1, 4, 5, 4],
 [8, 8, 2, 6, 4]])
In [28]: sa
Out[28]: 90
In [29]: sac
Out[29]: array([21, 15, 19, 19, 16])
In [30]: ma
Out[30]: 4.5
In [31]: mar
Out[31]: array([4.4, 3.6, 4.4, 5.6])

布尔数组函数

布尔数组中True为1,False为0,具体示例如下所示:

In [47]: import numpy as np
In [48]: arr = np.random.randint(10,size = 20).reshape(4,5)
In [49]: arr1 = arr >0
In [50]: arrs = arr1.sum()
In [51]: arrt = type(arr1)

上述代码是对布尔数组进行操作,其中In [48]是创建了一个4行5列的随机数组,并将其赋值给变量arr;In [49]是判断数组arr中数值大于0的值,并将结果赋值给变量arr1;In [50]是计算数组arr1的总和,并将结果赋值给变量arrs;In [51]是判断数组arr1中数据类型,并将结果赋值给变量arrt。各变量的运行结果如下所示:

In [52]: arr
Out[52]:
array([[2, 9, 8, 7, 9],
 [6, 7, 7, 2, 0],
 [7, 2, 8, 5, 7],
 [2, 9, 7, 8, 3]])
In [53]: arr1
Out[53]:
array([[ True, True, True, True, True],
 [ True, True, True, True, False],
 [ True, True, True, True, True],
 [ True, True, True, True, True]])
In [54]: arrs
Out[54]: 19
In [55]: arrt
Out[55]: numpy.ndarray

any()和all()函数通常用来对布尔数组进行特定判断,其用法具体如下:

  • any()函数:只要当布尔数组中有一个为True,则函数返回结果为True。
  • all()函数:当布尔数组中所有值均为True时,函数返回结果才为True。

在上述示例中使用any()函数和all()函数,运行结果如下:

In [56]: arr1.any()
Out[56]: True
In [57]: arr1.all()
Out[57]: False

从上述运行结果可以看出,数组arr1中含有1个False,19个True,因此any()函数返回结果为True,all()函数返回结果为False。

相关文章

  • NumPy基础之数组常用函数(一)

    通用函数 通用函数(ufunc)是对数组中的数据执行元素级运算的函数。常用的一元通用函数如下表所示。 二元通用函数...

  • numpy1~2

    7.1Numpy基础 介绍了Numpy数组对象特性,array()函数、arrange()函数、linspace(...

  • NumPy基础之数组常用函数(二)

    集合函数 NumPy提供了一些针对一维数组的基本集合运算方法,具体如下表所示。 上表是数组的集合运算方法,其中以u...

  • Numpy札记7_改变数组形状

    Numpy中查看数组形状的函数shape(),改变数组的形状常用函数有 ravel:将数组平铺成一维数组 resh...

  • Numpy数组

    内容参考:Numpy库常用函数大全 数组的属性 栗子: 数组的创建 扩展小知识:单位矩阵 栗子: 数组的随机函数 ...

  • Numpy学习-1

    Numpy学习-1 数组基础 创建数组1 .一维数组的创建 从上看出:使用array()函数创建数组,array的...

  • 利用Python进行数据分析随笔记 四 (2)

    tags: 第四章 NumPy基础:数组和矢量计算 通用函数:快速的元素级数组函数 通用函数:快速的元素级数组函数...

  • Numpy常用函数用法大全

    Numpy常用函数用法大全目录 Aarray 创建一个np数组arange 返回指定范围内的数组argmax 返回...

  • NumPy数组(初识numpy数组)

    NumPy 是一个基础性的Python库,为我们提供了常用的数值数组和函数 安装 一个简单的应用 假设要对向量a和...

  • (五)numpy知识学习2-python数据分析与机器学习实战(

    文章原创,最近更新:2018-05-2 1.numpy矩阵基础2.numpy常用函数3.矩阵常用操作4.不同复制操...

网友评论

    本文标题:NumPy基础之数组常用函数(一)

    本文链接:https://www.haomeiwen.com/subject/khqbbftx.html