ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

numpy 学习:通用函数(包含数学函数)

2022-01-05 14:08:09  阅读:146  来源: 互联网

标签:None 函数 元素 数学 数组 np numpy axis


通用函数(universal function)通常叫作ufunc,它对数组中的各个元素逐一进行操作。这表明,通用函数分别处理输入数组的每个元素,生成的结果组成一个新的输出数组。输出数组的大小跟输入数组相同。

一元通用函数:

  • abs:计算绝对值
  • sqrt:计算平方根
  • square:计算平方
  • exp:计算元素的值数ex
  • log、log10、log2:计算对数
  • ceil、floor:计算元素的ceiling值、floor值
  • rint:计算元素四舍五入到最接近的整数
  • modf:把数组的小数和整数部分以两个独立数组的形式返回
  • isnan、isinf:返回bool型数组,标识元素是否为nan、inf

二元通用函数,对两个数组进行操作:

  • add、subtract、multiply、divide:把数组中的对应元素相加、相减、相乘、相除
  • power:对第一个数组中的元素A,根据第二个数组中的相应元素B,计算AB
  • mod:元素级的求余数

numpy的数学函数,基本上都是元素级别的,对每个元素进行数学运算。

一,算术函数

numpy的数学函数都是元素级别的,也就是说,只用于位置相同的元素之间,所得到的运算结果组成一个新的数组。

  • np.add
  • np.subtract
  • np.multiple
  • np.divide
  • np.florr_divide
  • np.power 

这些函数有等价的运算符,分别是:+,-,*,/,//,**

还有一些其他的数学函数:

  • np.sqrt
  • np.square
  • np.absoulte, np.abs: 取绝对值
  • np.sign:返回元素的数字符号

二,指数和对数

  • np.exp
  • np.log
  • np.exp2
  • np.log2
  • np.log10

三,四舍五入

  • np.around(a, decimals=0, out=None) 四舍五入
  • np.ceil(x, *args, **kwargs) 上限
  • np.floor(x, *args, **kwargs)下限

四,数组的扩展加法运算

numpy可以按照特定的轴计算各个元素的和,累加和,及差值。

1,计算某个轴的元素之和

通过不同的 axis,numpy 会沿着不同的方向进行操作:如果不设置,那么对所有的元素操作;如果axis=0,则沿着纵轴进行操作;axis=1,则沿着横轴进行操作。但这只是简单的二位数组,如果是多维的呢?可以总结为一句话:设axis=i,则 numpy 沿着第i个下标变化的方向进行操作。

numpy.sum(a[, axis=None, dtype=None, out=None, …])

2,计算某个轴上的元素的累计和

numpy.cumsum(a, axis=None, dtype=None, out=None)

3,差值

计算数组中元素的差值:

numpy.diff(a, n=1, axis=-1, prepend=np._NoValue, append=np._NoValue)

参数注释:

n:表示距离为n,默认值是1,表示diff = a[i+1]-a[i]

axis:表示沿着该轴做差值运算

A = np.arange(2, 14).reshape((3, 4))
A[1, 1] = 8
print(A)
# [[ 2  3  4  5]
#  [ 6  8  8  9]
#  [10 11 12 13]]
print(np.diff(A))
# [[1 1 1]
#  [2 0 1]
#  [1 1 1]]
print(np.diff(A, axis=0))
# [[4 5 4 4]
#  [4 3 4 4]]

 

 

 

 

 

 

参考文档:

标签:None,函数,元素,数学,数组,np,numpy,axis
来源: https://www.cnblogs.com/ljhdo/p/15766504.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有