IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Numpy 通用函数 -> 正文阅读

[Python知识库]Numpy 通用函数

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

一、一元函数

1.1、一元函数列表

函数描述
np.abs绝对值
np.sqrt开根
np.square平方
np.exp计算指数(e^x)
np.log,np.log10,np.log2,np.log1p求以e为底,以10为低,以2为低,以(1+x)为底的对数
np.sign将数组中的值标签化,大于0的变成1,等于0的变成0,小于0的变成-1
np.ceil朝着无穷大的方向取整,比如5.1会变成6,-6.3会变成-6
np.floor朝着负无穷大方向取证,比如5.1会变成5,-6.3会变成-7
np.rint,np.round返回四舍五入后的值
np.modf将整数和小数分隔开来形成两个数组
np.isnan判断是否是nan
np.isinf判断是否是inf
np.cos,np.cosh,np.sin,np.sinh,np.tan,np.tanh三角函数
np.arccos,np.arcsin,np.arctan反三角函数

1.2、一元函数实例

1.2.1、abs

计算整数、浮点数或复数的绝对值。对于非复数值,可以使用更快的fabs

>>> import numpy as np
>>> np.abs(12)
12
>>> np.abs(-14)
14
>>> np.abs(13.0)
13.0
>>> np.abs(13.02)
13.02
>>> np.abs(12+5j)
13.0
>>> np.abs(12-5j)
13.0
>>> np.abs(12- 5j)
13.0
>>> 

1.2.2、sqrt

计算各元素的平方根

>>> np.sqrt(4)
2.0
>>> np.sqrt(-4)
<stdin>:1: RuntimeWarning: invalid value encountered in sqrt
nan
>>> np.sqrt(5)
2.23606797749979
>>> 

1.2.3、square

计算各元素的平方

>>> np.square(2)
4
>>> np.square(-2)
4
>>> np.square(1.1)
1.2100000000000002

1.2.4、exp

计算各元素的指数(e^x

>>> import numpy as np
>>> np.exp(4)
54.598150033144236
>>> np.exp(1)
2.718281828459045
>>> np.exp(2)
7.38905609893065
# python3还有个函数为exp2,计算的是2的指数
>>> np.exp2(2)  
4.0

1.2.5、log

loglog10log2log1p 分别为自然对数(底数为e)、底数为10的log、底数为2的log、log(1+x)

>>> np.log(2)
0.6931471805599453
>>> np.log(4)
1.3862943611198906
>>> np.log10(10)
1.0
>>> np.log10(0.1)
-1.0
>>> np.log2(2)
1.0
>>> np.log2(4)
2.0
>>> np.log2(0.4)
-1.3219280948873622
>>> np.log1p(1.21)
0.7929925155296614
>>> np.log1p(9)
2.302585092994046
>>> 

1.2.6、sign

计算各元素的正负号:1(正数)、0(零)、-1(负数)

>>> np.sign(12)
1
>>> np.sign(0)
0
>>> np.sign(-1)
-1
>>> np.sign(-14.5)
-1.0
>>> np.sign(114.5)
1.0
>>> np.sign(0.0)
0.0

1.2.7、ceil

计算各元素的ceiling值,即大于等于该值的最小整数

>>> np.ceil(1.1)
2.0
>>> np.ceil(2.0)
2.0
>>> np.ceil(-2.0)
-2.0
>>> np.ceil(-1.3)
-1.0
>>> np.ceil(-2.4)
-2.0

1.2.8、floor

计算各元素的floor值,即小于等于该值的最大整数

>>> np.floor(0)
0.0
>>> np.floor(1.8)
1.0
>>> np.floor(-1.5)
-2.0

1.2.9、round/rint

将各元素四舍五入到最接近的整数,保留dtype

>>> np.round(1.1)
1.0
>>> np.rint(1.1)
1.0
>>> np.rint(1.7)
2.0
>>> np.round(1.7)
2.0
>>> np.round(-1.7)
-2.0
>>> np.rint(-1.7)
-2.0

1.2.10、modf

将数组的小数和整数部分以两个独立数组的形式返回

>>> np.modf([1.3, -2.5, 3.0])
(array([ 0.3, -0.5,  0. ]), array([ 1., -2.,  3.]))
>>> np.modf([1.32, -2.05, 3.00])
(array([ 0.32, -0.05,  0.  ]), array([ 1., -2.,  3.]))

1.2.11、isnan

返回一个表示"哪些值是NaN(这不是一个数字)"的布尔型数组

>>> np.isnan(0.0)
False
>>> np.isnan(0.)
False
>>> np.isnan("NaN")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

1.2.12、isinf/isfinite

分别返回一个表示"哪些元素是无穷的的布尔型数组" 或 “哪些元素是有穷的(非inf,非NaN)”

>>> np.isfinite(1/3)
True
>>> np.isinf(1/3)
False
>>> np.isinf(1/2)
False
>>> np.isfinite(1/2)
True

1.2.13、np.cos,np.cosh,np.sin,np.sinh,np.tan,np.tanh

三角函数

>>> np.cos(0)
1.0
>>> np.cosh(0)
1.0
>>> pi=3.14
>>> np.sin(np.pi/2.)
1.0
>>> np.sinh(np.pi/2.)
2.3012989023072947
>>> np.tan(0)
0.0
>>> np.tanh(0)
0.0

1.2.14、np.arccos,np.arcsin,np.arctan

反三角函数

>>> np.arccos(1.0)
0.0
>>> np.arcsin(1.0)
1.5707963267948966
>>> np.arctan(0)
0.0

二、二元函数

2.1、二元函数列表

函数描述
np.add加法运算(即1+1=2),相当于+
np.subtract减法运算(即3-2=1),相当于-
np.negative负数运算(即-2),相当于加个负号
np.multiply乘法运算(即2*3=6),相当于*
np.divide除法运算(即3/2=1.5),相当于/
np.floor_divide取整运算,相当于//
np.mod取余运算,相当于%
greater,greater_equal,less,less_equal,equal,not_equal>,>=,<,<=,=,!=的函数表达式
logical_and&的函数表达式
logical_or|的函数表达式
logical_not逻辑非

2.2、二元函数实例

2.2.1、add

加法

>>> import numpy as np
>>> a=np.array([1, 2, 3])
>>> a
array([1, 2, 3])
>>> b=np.array([4, 5, 6])
>>> b
array([4, 5, 6])
>>> np.add(a, b)
array([5, 7, 9])

2.2.2、subtract

减法

>>> import numpy as np
>>> a=np.array([1, 2, 3])
>>> a
array([1, 2, 3])
>>> b=np.array([4, 5, 6])
>>> b
array([4, 5, 6])
>>> np.subtract(b, a)
array([3, 3, 3])
>>> np.subtract(a, b)
array([-3, -3, -3])

2.2.3、negative

取负,相当于加’-’

>>> import numpy as np
>>> a=np.array([1, 2, 3])
>>> a
array([1, 2, 3])
>>> b=np.array([4, 5, 6])
>>> b
array([4, 5, 6])
>>> np.negative(a)
array([-1, -2, -3])
>>> np.negative(b)
array([-4, -5, -6])

2.2.4、multiply

乘法

>>> import numpy as np
>>> a=np.array([1, 2, 3])
>>> a
array([1, 2, 3])
>>> b=np.array([4, 5, 6])
>>> b
array([4, 5, 6])
>>> np.multiply(a, b)
array([ 4, 10, 18])

2.2.5、divide

除法,相当于’/’

>>> a=np.array([4, 6, 9, 12])
>>> a
array([ 4,  6,  9, 12])
>>> b=np.array([2, 3, 4, 5])
>>> np.divide(a, b)
array([2, 2, 2, 2])
>>> c=np.array([2, 3, 3, 2])
>>> c
array([2, 3, 3, 2])
>>> np.divide(a, c)
array([2, 2, 3, 6])
>>> 

2.2.6、floor_divide

取整运算,相当于’//’

>>> a=np.array([4, 6, 9, 12])
>>> b=np.array([2, 3, 4, 5])
>>> c=np.array([2, 3, 3, 2])
>>> np.floor_divide(a, b)
array([2, 2, 2, 2])
>>> np.floor_divide(a, c)
array([2, 2, 3, 6])

2.2.7、mod

取余运算,相当于’%’

>>> a=np.array([4, 6, 9, 12])
>>> b=np.array([2, 3, 4, 5])
>>> c=np.array([2, 3, 3, 2])
>>> np.mod(a, b)
array([0, 0, 1, 2])
>>> np.mod(a, c)
array([0, 0, 0, 0])

2.2.8、greater,greater_equal,less,less_equal,equal,not_equal

,>=,<,<=,=,!=的函数表达式

>>> a=np.array([1, 2, 3, 4 ])
>>> b=np.array([4, 5, 6, 4])
>>> np.greater(a, b)
array([False, False, False, False])
>>> np.greater_equal(a, b)
array([False, False, False,  True])
>>> np.less(a, b)
array([ True,  True,  True, False])
>>> np.less_equal(a, b)
array([ True,  True,  True,  True])
>>> np.equal(a, b)
array([False, False, False,  True])
>>> np.not_equal(a, b)
array([ True,  True,  True, False])

2.2.9、logical_and,logical_or,logical_not

逻辑与、或、非

>>> np.logical_and(True, False)
False
>>> np.logical_and([True, False], [False, False])
array([False, False])
>>> x = np.arange(5)
>>> np.logical_and(x>1, x<4)
array([False, False,  True,  True, False])
>>> np.logical_or(True, False)
True
>>> np.logical_or([True, False], [False, False])
array([ True, False])
>>> x = np.arange(5)
>>> np.logical_or(x < 1, x > 3)
array([ True, False, False, False,  True])
>>> np.logical_not(3)
False
>>> np.logical_not([True, False, 0, 1])
array([False,  True,  True, False])
>>> x = np.arange(5)
>>> np.logical_not(x<3)
array([False, False, False,  True,  True])

三、聚合函数

3.1、聚合函数列表

函数名称NAN安全版本描述
np.sumnp.nansum计算元素的和
np.prodnp.nanprod计算元素的积
np.meannp.nanmean计算元素的平均值
np.stdnp.nanstd计算元素的标准差
np.varnp.nanvar计算元素的方差
np.minnp.nanmin计算元素的最小值
np.maxnp.nanmax计算元素的最大值
np.argminnp.nanargmin找出最小值的索引
np.argmaxnp.nanargmax找出最大值的索引
np.mediannp.nanmedian计算元素的中位数

3.2、聚合函数实例

3.2.1、sum

计算元素的和

>>> a=np.array([1, 3, 5])
>>> np.sum(a)
9

3.2.2、prod

计算元素的积

>>> a=np.array([1, 3, 5])
>>> np.prod(a)
15

3.2.3、mean

计算元素的平均值

>>> a=np.array([1, 3, 5])
>>> np.mean(a)
3.0

3.2.4、std

计算元素的标准差

>>> a=np.array([1, 3, 5])
>>> np.std(a)
1.632993161855452

3.2.5、var

计算元素的方差

>>> a=np.array([1, 3, 5])
>>> np.var(a)
2.6666666666666665

3.2.6、min

计算元素的最小值

>>> a=np.array([1, 3, 5])
>>> np.min(a)
1

3.2.7、max

计算元素的最小值

>>> a=np.array([1, 3, 5])
>>> np.max(a)
5

3.2.8、argmin

找出最小值的索引

>>> a=np.array([1, 3, 5])
>>> np.argmin(a)
0

3.2.9、argmax

找出最大值的索引

>>> a=np.array([1, 3, 5])
>>> np.argmax(a)
2

3.2.10、median

计算元素的中位数

>>> a=np.array([1, 3, 5])
>>> np.median(a)
3.0

四、布尔数组的函数

4.1、np.any

验证任何一个元素是否为真

>>> a=np.array([0, 0, 0])
>>> np.any(a==0)
True
>>> b=np.array([1, 1, 1])
>>> np.any(b==0)
False
>>> np.any(b==1)
True

4.2、np.all

验证所有元素是否为真

>>> np.all(a==0)
True
>>> np.all(b==1)
True
>>> np.all(b==0)
False
>>> c=np.array([0, 1, 0])
>>> np.any(c==0)
True
>>> np.all(c==0)
False
>>> np.any(c==1)
True
>>> np.all(c==1)
False

五、数组排序

5.1、np.sort

指定轴进行排序,默认是使用数组的最后一个轴进行排序

>>> a=np.array([(16, 14, 89),(17, 67, 98 ),(21, 34, 20)])
>>> a
array([[16, 14, 89],
       [17, 67, 98],
       [21, 34, 20]])
>>> a=np.array([[16, 14, 89],[17, 67, 98 ],[21, 34, 20]])
>>> a
array([[16, 14, 89],
       [17, 67, 98],
       [21, 34, 20]])
>>> np.sort(a)
array([[14, 16, 89],
       [17, 67, 98],
       [20, 21, 34]])
>>> np.sort(a, axis=0) #按照列进行排序,因为指定了axis=0
array([[16, 14, 20],
       [17, 34, 89],
       [21, 67, 98]])

5.2、np.argsort

返回排序后的下标值

>>> a=np.array([(16, 14, 89),(17, 67, 98 ),(21, 34, 20)])
>>> a
array([[16, 14, 89],
       [17, 67, 98],
       [21, 34, 20]])
>>> np.sort(a)
array([[14, 16, 89],
       [17, 67, 98],
       [20, 21, 34]])
>>> np.argsort(a)
array([[1, 0, 2],
       [0, 1, 2],
       [2, 0, 1]])

5.3、降序排列

np.sort默认会采用升序排序,可以使用-np.sort(-a)实现降序

>>> a=np.array([(16, 14, 89),(17, 67, 98 ),(21, 34, 20)])
>>> a
array([[16, 14, 89],
       [17, 67, 98],
       [21, 34, 20]])
>>> np.sort(a)
array([[14, 16, 89],
       [17, 67, 98],
       [20, 21, 34]])
>>> -np.sort(-a)
array([[89, 16, 14],
       [98, 67, 17],
       [34, 21, 20]])

六、数组随机数

6.1、数组随机数列表

函数描述
rand产生n个随机数组(0到1之间的数)
randint产生一个指定范围内的随机整数,(a,b) 生成值a=<x<b
choice随机选择数组中一个数
shuffle把数组序列打乱,重新组合
uniform获取更大范围内(相比rand)浮点型数组

6.2、数组随机数实例

6.2.1、rand

产生n个随机数组(0到1之间的数)

>>> np.random.rand(3)
array([0.33182353, 0.59096579, 0.353353  ])
>>> np.random.rand(4)
array([0.76854013, 0.89397436, 0.45293351, 0.00541298])
>>> np.random.rand(2)
array([0.11746056, 0.59730736])

6.2.2、randint

产生一个指定范围内的随机整数,(a,b) 生成值a=<x<b

>>> np.random.randint(3)
0
>>> np.random.randint(1,3)
1
>>> np.random.randint(1,3)
2
>>> np.random.randint(1,3)
2
>>> np.random.randint(1,3)
1
>>> np.random.randint(1,3)
2
>>> np.random.randint(1,3)
2
>>> np.random.randint(1,3)
1
>>> np.random.randint(1,2)
1
>>> np.random.randint(1,2)
1
>>> np.random.randint(1,2)
1
>>> np.random.randint(1,2)
1
>>> np.random.randint(1,2)
1

6.2.3、choice

随机选择数组中一个数

>>> np.random.choice([1,3, 9, 13])
13
>>> np.random.choice([1,3, 9, 13])
9
>>> np.random.choice([1,3, 9, 13])
13
>>> np.random.choice([1,3, 9, 13])
9
>>> np.random.choice([1,3, 9, 13])
1
>>> np.random.choice([1,3, 9, 13])
13

6.2.4、shuffle

把数组序列打乱,重新组合

>>> a=np.arange(10)
>>> a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.random.shuffle(a)
>>> a
array([6, 1, 8, 3, 2, 9, 4, 5, 0, 7])
>>> a
array([6, 1, 8, 3, 2, 9, 4, 5, 0, 7])
>>> np.random.shuffle(a)
>>> a
array([3, 5, 9, 4, 1, 6, 8, 2, 0, 7])

6.2.5、uniform

获取更大范围内(相比rand)浮点型数组

>>> np.random.uniform()
0.7187235478658701
>>> np.random.uniform()
0.5633589179442539
>>> np.random.uniform(low=2,high=3)
2.993127402309656
>>> np.random.uniform(low=2,high=3)
2.409017601561471
>>> np.random.uniform(low=2,high=3,size=(2,2))
array([[2.17256592, 2.98800888],
       [2.51134462, 2.04196065]])
>>> np.random.uniform(low=2,high=3,size=(2,2))
array([[2.7433721 , 2.13060859],
       [2.27125088, 2.5522496 ]])

参考文档:

1、https://blog.csdn.net/qq_34988996/article/details/119997966

2、https://www.cnblogs.com/catxjd/p/9795079.html

3、https://blog.csdn.net/weixin_40426830/article/details/109959142

4、https://blog.csdn.net/BaoITcore/article/details/125273828

5、https://blog.csdn.net/weixin_39289876/article/details/104514585
6、https://blog.51cto.com/u_15181342/5355392

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:04:55  更:2022-12-25 11:09:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/24 1:22:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码