Numpy_计算距离以及统计数据

发布时间 2023-06-19 15:58:01作者: 辰令

python-比较是否相等

 数据的具体的精度
###numpy 
 np.round(y_pred,2) 
      保留两位有效数字  return abs(f1 - f2) <= allowed_error
	  round是四舍六入五近偶
 numpy.array_equal()
 numpy.allclose()
    绝对接近加上相对接近耐(abs(b)*rtol+atol)
 numpy.isclose() 
###math 
math.isclose()综合了绝对接近和相对接近两个选项:
   math.isclose(a, b, rel_tol=1e-09, abs_tol=0.0) 
      abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol).
###python 
  float这和认知的小数是有差别的,这个时候就需要用到 decimal

statistics --- 数学统计函数

from statistics import median
geometric_mean() 数据的几何平均数  平均值以及对中心位置的评估 对分散程度的评估
两个输入之间关系的统计

众数是数据集中出现频率最高的值或值的集合。函数计算并返回数据集的众数作为结果。
import statistics
data = [1, 2, 3, 3, 4, 4, 4, 5]
mode = statistics.mode(data)
print(mode)	

###方案二
from scipy import stats
import numpy as np
arr = np.array([[0, 0, 1, 1, 1], [2, 3, 3, 2, 3]])
res = stats.mode(arr, axis=1)

scipy库中的stats模块来计算峰度和偏度:
from scipy import stats
import numpy as np
data = np.array([1, 2, 3, 4, 5])
# 计算偏度
skewness = stats.skew(data)
print("偏度:", skewness)
# 计算峰度
kurtosis = stats.kurtosis(data)
print("峰度:", kurtosis)	

scipy

统计和随机数: scipy.stats
线性代数运算: scipy.linalg 
空间数据结构和算法 scipy.spatial
    from scipy.spatial import KDTree
	scipy.spatial.transform.Rotation
    scipy.spatial.transform.Rotation.inv		
优化和拟合 scipy.optimize
     scipy.optimize.leastsq(最小二乘拟合)
     scipy.optimize.linear_sum_assignment()	
      optimize.dual_annealing differential_evolution 差分进化算法		 

Numpy计算各类距离的方法

欧式距离
  np.exp(x)表示自然数e(2.718281828459045)的多少次方,
     括号里给数字1,就表示e的1次方,给2表示e的2次方,括号里的数可以是负数或分数。
  np.sqrt(x)表示开平方,括号给1,
     表示给1开平方,给2表示2开平方,括号里的数必须大于或等于0。
  np.power(x, y) 表示x 的y次方,
      y=2表示x的平方,y=1/2表示x开方,y =1/3表示x开立方,y= -1表示x的倒数。
   np.square()——对数组中每一个元素平方,返回一个新数组
   np.log()——对数组a中的每一个元素x取自然对数lnx,并返回一个新的数组
   np.sum()——对数组按要求求和,返回一个数组或一个数值
   np.linalg.norm(x,ord=None,axis=None,keepdims=False)
      linalg=linear(线性)+algebra(代数),norm则表示范数
 ###示例
   vector1 = np.array([1,2,3])
   vector2 = np.array([4,5,6])
    
   op1=np.sqrt(np.sum(np.square(vector1-vector2)))
   op2=np.linalg.norm(vector1-vector2)

Python
   作为函数形参 两个星(**):表示接收的参数作为字典来处理 一个星(*):表示接收的参数作为元组来处理
   **作为运算符表示乘方,类似的*表示乘法。
   **作为函数实参   *作为序列解包

参考

Python Numpy计算各类距离的方法 https://blog.csdn.net/dear_zhoubi/article/details/97391925
https://docs.python.org/zh-cn/3/library/statistics.html
statistics --- 数学统计函数