通用函数-元素级数组函数

通用函数(ufunc)是一种对ndarray执行元素级运算的函数。

一元ufunc


import numpy as np
arr = np.arange(-10,10,2)
arr
Out[5]: array([-10, -8, -6, -4, -2, 0, 2, 4, 6, 8]) np.abs(arr)#绝对值
Out[7]: array([10, 8, 6, 4, 2, 0, 2, 4, 6, 8])
np.fabs(arr)#绝对值
Out[8]: array([ 10., 8., 6., 4., 2., 0., 2., 4., 6., 8.])
  1. abs、fabs计算整数、浮点数或复数的绝对值。对于非复数值,可以使用更快的fabs。
arr1 = np.arange(16)

np.sqrt(arr1)#平方根,即arr1 ** 0.5
Out[19]:
array([ 0. , 1. , 1.41421356, 1.73205081, 2. ,
2.23606798, 2.44948974, 2.64575131, 2.82842712, 3. ,
3.16227766, 3.31662479, 3.46410162, 3.60555128, 3.74165739,
3.87298335]) np.square(arr1)#平方
Out[20]:
array([ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144,
169, 196, 225], dtype=int32) arr2 = np.exp(arr1)#各元素的指数e**x
Out[21]:
array([ 1.00000000e+00, 2.71828183e+00, 7.38905610e+00,
2.00855369e+01, 5.45981500e+01, 1.48413159e+02,
4.03428793e+02, 1.09663316e+03, 2.98095799e+03,
8.10308393e+03, 2.20264658e+04, 5.98741417e+04,
1.62754791e+05, 4.42413392e+05, 1.20260428e+06,
3.26901737e+06]) np.log(arr2) #自然对数(底数为e)
Out[24]:
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.,
11., 12., 13., 14., 15.])
  1. log10,log2,log1p,其底数分别为,10,2;以及log(1+ P)
  2. singn 计算个元素正负号,1(正数),0(零),-1(负数)
np.sign(arr) #正负号
Out[25]: array([-1, -1, -1, -1, -1, 0, 1, 1, 1, 1])
  1. ceil返回大于等于该值的最小整数。
  2. floor 返回小于等于该值的最大整数。
  3. rint四舍五入,保留dtype。
  4. modf将数组的小数和整数部分一两个独立数组的形式返回。
arr3 = np.random.randn(5)

arr3
Out[27]: array([ 0.0830739 , -2.18172821, 0.77026638, 0.70735324, -1.02929973]) np.ceil(arr3)#返回>=最小整数
Out[28]: array([ 1., -2., 1., 1., -1.]) np.floor(arr3)#返回<=最大整数
Out[29]: array([ 0., -3., 0., 0., -2.]) np.rint(arr3)#四舍五入
Out[30]: array([ 0., -2., 1., 1., -1.]) np.modf(arr3)#拆分整数和小数
Out[31]:
(array([ 0.0830739 , -0.18172821, 0.77026638, 0.70735324, -0.02929973]),
array([ 0., -2., 0., 0., -1.]))
  1. isnan返回布尔型数组,表示哪些值是NaN(非数字)。
  2. isfinite/isinf返回布尔型数组,表示哪些元素是有穷的(非inf,非NaN)或那些是无穷的。
  3. cos,cosh,sin,sinh,tan,tanh普通型和双曲型三角函数。
  4. arccos,arccosh,arcsin,arcsinh,asrtan,arctanh反三角函数。
  5. logical_not计算个元素的not x的真值,相当于-arr。

arr4 = np.arange(-10,10,2)
np.logical_not(arr4<=0)
Out[39]: array([False, False, False, False, False, False, True, True, True, True], dtype=bool)

二元ufunc

  1. add 元素对应相加。
  2. subtract 第一个数组元素减去第二个的元素。
  3. multiply 数组元素相乘。
  4. divide,floor_divide 除法,或向下整除(丢弃余数)。
  5. power第一个数组中的元素A,第二个数组中的元素B,返回A的B次方。
arr5 = np.arange(10)

arr6 = np.arange(10,20)

np.add(arr5,arr6) #相加
Out[44]: array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28]) np.subtract(arr6,arr5)#相减
Out[47]: array([10, 10, 10, 10, 10, 10, 10, 10, 10, 10]) np.multiply(arr5,arr6)#对应相乘
Out[48]: array([ 0, 11, 24, 39, 56, 75, 96, 119, 144, 171]) np.divide(arr5,arr6)#相除
Out[50]:
array([ 0. , 0.09090909, 0.16666667, 0.23076923, 0.28571429,
0.33333333, 0.375 , 0.41176471, 0.44444444, 0.47368421]) arr7 = np.arange(20,30) np.floor_divide(arr7,arr6)#整除
Out[54]: array([2, 1, 1, 1, 1, 1, 1, 1, 1, 1], dtype=int32) arr8 = np.arange(5)
arr9 = np.arange(5,10) np.power(arr9,arr8)#次幂
Out[60]: array([ 1, 6, 49, 512, 6561], dtype=int32)
  1. maximum,fmax返回两个数组中较大值组成的数组。fmax忽略NaN。
  2. minimum,fmin同上。
  3. mod求模,即求余数。
  4. copysign第二个数组的符号,复制给第一个数组。
x = np.random.randn(5)

y = np.random.randn(5)

x
Out[65]: array([-1.34391461, 0.58819335, 0.19195261, -0.5660927 , 0.98594434]) y
Out[66]: array([-0.57704395, -0.40143752, -0.83931321, -0.38734544, 1.2436085 ]) np.maximum(x,y)#元素及最大值计算
Out[68]: array([-0.57704395, 0.58819335, 0.19195261, -0.38734544, 1.2436085 ]) np.minimum(x,y)#元素级最小值计算
Out[69]: array([-1.34391461, -0.40143752, -0.83931321, -0.5660927 , 0.98594434]) m = np.arange(1,5) n = np.arange(6,10) np.mod(n,m)#求模
Out[83]: array([0, 1, 2, 1], dtype=int32) np.copysign(y,x)#符号复制
Out[90]: array([-0.57704395, 0.40143752, 0.83931321, -0.38734544, 1.2436085 ])
  1. greater,greater_equal,less,less_equal,equal,not_euqal元素级比较运算,最终产生布尔型数组,相当于>,>=,<,<=,==,!=。
  2. logical_and,logical_or,logical_xor元素级真值运算,相当于&,|,^。
In [2]: x = np.arange(6)

In [3]: t = np.arange(1,13,2)

In [7]: np.greater(x,t)
Out[7]: array([False, False, False, False, False, False], dtype=bool) In [8]: np.less_equal(x,t)
Out[8]: array([ True, True, True, True, True, True], dtype=bool) In [10]: np.logical_and(x > 0,t <0)
Out[10]: array([False, False, False, False, False, False], dtype=bool)

numpy之通用函数ufunc的更多相关文章

  1. 1-Numpy的通用函数(ufunc)

    一.numpy“通用函数”(ufunc)包括以下几种: 元素级函数(一元函数):对数组中的每个元素进行运算 数组级函数:统计函数,像聚合函数(例如:求和.求平均) 矩阵运算 随机生成函数 常用一元通用 ...

  2. 初探numpy——numpy常用通用函数

    numpy通用函数 快速的逐元素数组函数,也可以称为ufunc,对ndarray数据中的元素进行逐元素操作的函数 一元通用函数 函数名 描述 abs.fabs 取绝对值 sqrt 计算平方根,等同于a ...

  3. Numpy 的通用函数:快速的元素级数组函数

    通用函数: 通用函数(ufunc)是一种对ndarray中的数据执行元素级运算的函数.你可以将其看作简单函数(接受一个或多个标量值,并产生一个或度过标量值)的矢量化包装器. 简单的元素级变体,如sqr ...

  4. numpy的通用函数:快速的元素级数组函数

    通用函数(ufunc)是对ndarray中的数据执行元素级运算的函数.可看作简单函数的矢量化包装. 一元ufunc sqrt对数组中的所有元素开平方 exp对数组中的所有元素求指数 In [93]: ...

  5. numpy 的通用函数

    1 CSV文件 CSV,Comma Separate Values,是逗号分隔文件的缩写,是一种存储数据的纯文本格式,通常用于存储电子表格或数据库软件 特点 每条记录占一行 以逗号为分隔符 逗号前后的 ...

  6. numpy的通用函数

    通用函数:快速的元素级数组函数 通用函数是一种对ndarry中的数据执行元素级运算的函数,可以看作是简单函数(接受一个或多个标量值,并产生一个或多个标量值)的矢量化包装器. 一元func: abs丶f ...

  7. numpy通用函数

    numpy的通用函数可以对数组进行向量化操作,可以提高数组元素的重复计算的效率. 一.numpy的算数运算符都是对python内置符的封装 算数运算符 >>> import nump ...

  8. NumPy的详细教程

    原文  http://blog.csdn.net/lsjseu/article/details/20359201 主题 NumPy 先决条件 在阅读这个教程之前,你多少需要知道点python.如果你想 ...

  9. 学习笔记之NumPy

    NumPy — NumPy http://www.numpy.org/ NumPy is the fundamental package for scientific computing with P ...

随机推荐

  1. dubbo学习小结

    dubbo学习小结 参考: https://blog.csdn.net/paul_wei2008/article/details/19355681 https://blog.csdn.net/liwe ...

  2. [USACO08DEC]在农场万圣节Trick or Treat on the Farm

    题目描述 Every year in Wisconsin the cows celebrate the USA autumn holiday of Halloween by dressing up i ...

  3. C语言,C#,Java,JavaScript之强类型与弱类型

    奇葩的我今天想到一个坑爹的问题,都说Java是强类型的语言,JavaScript是弱类型的语言. 嗯嗯,那初学时候的C语言呢? 呵呵哒,突然觉得短路了.说Java是强类型的语言是因为遇到这样的情况: ...

  4. 使用maven时报错Dynamic Web Module 3.1 requires Java 1.7 or newe

    解决方法:        1. 在eclipse 构建 web中关于java版本有三处需要修改统一.            (1)在 Java Build Path的libraries中修改      ...

  5. 使用maven创建项目时报错The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

    Description Resource Path Location Type The superclass "javax.servlet.http.HttpServlet" wa ...

  6. 报错HTTP Status 500 - Unable to instantiate Action

    报错如下: HTTP Status 500 - Unable to instantiate Action, visitAction, defined for 'visit_toAddPage' in ...

  7. js 深拷贝和浅拷贝理解

    作者:进击的袋鼠链接:https://www.zhihu.com/question/23031215/answer/124017500来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...

  8. lightoj1197区间素数筛

    模板题,不过好像有点问题,当a==1的时候,答案把一也算进去了,要减去 #include<map> #include<set> #include<cmath> #i ...

  9. 算法练习5---快速排序Java版

    基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成 ...

  10. iptables(二)iptables实际操作之规则查询

    如果你是一个新手,在阅读如下文章时,请坚持读到最后,读的过程中可能会有障碍,但是在读完以后,你会发现你已经明白了. 在进行iptables实验时,请务必在测试机上进行. 之前在iptables的概念中 ...