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 "", 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.sum np.nansum 计算元素的和
np.prod np.nanprod 计算元素的积
np.mean np.nanmean 计算元素的平均值
np.std np.nanstd 计算元素的标准差
np.var np.nanvar 计算元素的方差
np.min np.nanmin 计算元素的最小值
np.max np.nanmax 计算元素的最大值
np.argmin np.nanargmin 找出最小值的索引
np.argmax np.nanargmax 找出最大值的索引
np.median np.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=
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=

>>> 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

你可能感兴趣的:(#,Python模块和包,numpy,python,数据分析)