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

通用函数(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. spring核心技术IOC,DI

    在介绍Spring中IOC之前,先说说Spring的优势有哪些.首先1.方便解耦,简化开发:就是说将对象间的依赖关系交给Spring进行控制,避免了编码造成的过度耦合.2.AOP编程的支持:方便进行切 ...

  2. quartz(4)--quartz.properties文件

    Quartz有一个叫做quartz.properties的配置文件,它允许你修改框架运行时环境.缺省是使用Quartz.jar里面的quartz.properties文件.当然你应该创建一个quart ...

  3. Spring Cloud 与 Spring boot - 转载

    微服务是这样一个结构吗? 前端或二方 - > ng集群 -> zuul集群 -> eureka-server集群 -> service provider集群 (二方指其他业务部 ...

  4. 关于eclipse中看不到源码的问题

    这几步之后会生成一个src压缩包,再用att打开即可.记住 要按ctrl再点击

  5. crontab 参数详解

    crontab 参数 用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下: minute ...

  6. scala学习手记31 - Trait

    不知道大家对java的接口是如何理解的.在我刚接触到接口这个概念的时候,我将接口理解为一系列规则的集合,认为接口是对类的行为的规范.现在想来,将接口理解为是对类的规范多少有些偏颇,更恰当些的观点应该是 ...

  7. 落地案例|日本雅虎如何在 OpenStack 上大规模构建和运行 Kubernetes

    今天的帖子是由日本雅虎的基础设施工程团队撰写,内容是他们如何在 Kubernetes 上运行 OpenStack.这篇帖子是由日本雅虎的工程博客编译而来. 简介: 这篇帖子大致描述了日本雅虎在 Goo ...

  8. centos下tomcat自启动

    一.在指定目录创建脚本并赋予755权限 vim /etc/init.d/tomcat #!/bin/bash # # kenny kenny.zhou@tom.com # /etc/rc.d/init ...

  9. mysql:字符分割,将字符分割成数组

    1.分割函数:SUBSTRING_INDEX('浙江温州-中国电信','-','1') 2.用例(筛选'-'前至少4个汉字的数据) a.数据分布 b.筛选sql   select t.mobile_n ...

  10. Referenced file contains errors (http://www.springframework.org/schema/aop/spring-aop-3.0.xsd). For more information, right click on the message in th

    XML code<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC &q ...