NumPy 数学函数


NumPy 数学函数

NumPy是Python的一个包,主要用于数值计算。 NumPy包含大量的数学以及统计函数。数学函数包含了三角函数、算术函数、统计函数、线性代数函数和随机数生成函数。在数据分析和数据处理、科学计算等领域中具有广泛的用途。本文将会重点介绍NumPy的数学函数相关内容。

三角函数

numpy.sin()

 numpy.sin(x)返回给定角x的正弦值。函数输入为弧度制,返回值的范围位于[-1,1]之间。

import numpy as np
x = np.array([0, np.pi/2, np.pi])
print(np.sin(x))

输出结果:


array([0., 1. , 0.])

numpy.cos()

 numpy.cos(x)返回参数x的余弦值。该参数同样为弧度值,返回值范围在(-1,1)之间。

import numpy as np
x = np.array([0, np.pi/2, np.pi])
print(np.cos(x))

输出结果:

array([ 1.000000e+00,  6.123234e-17, -1.000000e+00])

numpy.tan()

 numpy.tan(x)返回给定角的正切值,x为弧度制。返回的值范围不固定。

import numpy as np
x = np.array([0, np.pi/2, np.pi])
print(np.tan(x))

输出结果:

array([ 0.00000000e+00,  1.63312394e+16, -1.22464680e-16])

算术函数

numpy.around()

 numpy.around(a,decimals = 0)返回四舍五入到小数点后n位的值,若n为负数,则将整数位设为n。

import numpy as np
a = np.array([1.0,5.55, 123, 0.567, 25.532])
print(np.around(a))
print(np.around(a, decimals = 1))
print(np.around(a, decimals = -1))

输出结果:

array([  1.,   6., 123.,   1.,  26.])
array([  1. ,   5.6, 123. ,   0.6,  25.5])
array([  0.,  10., 120.,   0.,  30.])

numpy.floor()

 numpy.floor(x)返回小于或等于给定数字x的最大整数,当x为负数时,取比当期整数小的最大整数。

import numpy as np
a = np.array([-1.7, 1.5, -0.2, 0.6, 10])
print(np.floor(a))

输出结果:

array([-2.,  1., -1.,  0., 10.])

numpy.ceil()

 numpy.ceil(x)返回大于或等于给定数字x的最小整数,当x为负数时,取比当期整数小的最大整数。

import numpy as np
a = np.array([-1.7, 1.5, -0.2, 0.6, 10])
print(np.ceil(a))

输出结果:

array([-1.,  2., -0.,  1., 10.])

统计函数

numpy.min() 和 numpy.max()

 numpy.min(a,axis,out,keepdims,initial,…)和numpy.max(a,axis,out,keepdims,initial,…)用于返回数组的最小值和最大值。

import numpy as np
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print(np.min(a))
print(np.max(a))

输出结果:

2
9

numpy.mean()

 numpy.mean(a,axis,dtype,out,keepdims,…)返回指定轴上的算术平均值。

import numpy as np
a = np.array([[3,7,5],[8,4,3],[2,4,9]])
print(np.mean(a))
print(np.mean(a, axis = 0))

输出结果:

4.888888888888889
array([4.33333333, 5.        , 5.66666667])

numpy.median()

 numpy.median(a,axis,out,overwrite_input,…)返回沿轴向的中位数。

import numpy as np
a = np.array([[30,65,70],[80,95,10],[50,60,85]])
print(np.median(a))
print(np.median(a, axis = 0))

输出结果:

65.0
array([50., 65., 70.])

numpy.var()

 numpy.var(a,axis,dtype,out,ddof,keepdims,…)返回沿给定轴的方差。

import numpy as np
a = np.array([[30,60,80],[90,70,15],[50,20,85]])
print(np.var(a))
print(np.var(a, axis = 0))

输出结果:

481.111111111111
array([280., 480., 400.])

线性代数函数

numpy.dot()

 numpy.dot(x,y)计算两个数组的点积。

import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[11,12],[13,14]])
print(np.dot(a, b))

输出结果:

array([[37, 40],
      [85, 92]])

numpy.linalg.det()

 numpy.linalg.det(a)计算给定方阵的行列式。

import numpy as np
a = np.array([[6,1,1],[4,-2,5],[2,8,7]])
print(np.linalg.det(a))

输出结果:

-306.0

随机数生成函数

numpy.random.rand()

 numpy.random.rand(d0,d1,…,dn)此函数根据给定维度生成[0,1)之间的随机数。可以将参数看作一个指定形状的数组。

import numpy as np
print(np.random.rand())
print(np.random.rand(5))

输出结果:

0.3178551612951711
array([0.8579478 , 0.72040141, 0.11129457, 0.55480094, 0.7804907 ])

numpy.random.randn()

 numpy.random.randn(d0,d1,d2,…,dn)函数返回一个样本,具有标准正态分布。

import numpy as np
print(np.random.randn())
print(np.random.randn(2, 2))

输出结果:

-0.6698177217424291
array([[-0.20092486, -0.55847229],
       [-1.4201186 , -0.27241791]])