Python——找到最大最小平均最近的值

文章介绍了如何使用Python编程语言对一组数值列表进行操作,包括找出最大值、最小值,计算平均值,并找到最接近平均值的数。这涉及到基本的IT技术,特别是数据处理和算法应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zx = [8, 3, 12, 1, 2, 34, 54, 12, 34, 11, 12, 14, 9, 1, 10, 15, 17, 18, 99, 1, 3, 5, 10]
max_n = zx[0]
min_n = zx[1]
for i in zx:
    if i > max_n: max_n = i
    if i < min_n: min_n = i
avg_n = (max_n + min_n) / 2
print(max_n, min_n, avg_n)
closet_n = zx[0]
for n in zx:
    if abs(avg_n - n) < abs(avg_n - closet_n):
        closet_n = n
        print("找到更近的了",closet_n)

运行结果如下: 

 

### Python 中实现最小二乘法 为了理解并应用最小二乘法,在Python中的具体实践可以分为几个部分来解释。 #### 数据准备 首先,创建或加载一组数据点。这些数据点代表自变量\(X\)和因变量\(Y\)的关系。对于演示目的,通常会生成一些带有噪声的人工数据集[^2]。 ```python import numpy as np import matplotlib.pyplot as plt # 创建样本数据 np.random.seed(0) X = 2 * (np.random.rand(50, 1) - 0.5) # 自变量范围[-1, 1] y_true = 4 + 3 * X # 真实关系 y=4+3x noise = np.random.randn(50, 1) # 添加随机噪音 y = y_true + noise # 带有噪音的目标 plt.scatter(X, y, color='blue') # 绘制散点图 plt.plot(X, y_true, 'r-', linewidth=2) # 绘制真实直线 plt.show() ``` 这段代码展示了如何构建一个简单的线性分布的数据集合,并加入了一些高斯白噪用来模拟现实世界里的不确定性因素。 #### 计算系数 接着计算斜率(m)和截距(b),这是通过解析解的方式得到的佳拟合直线参数: \[ m,b=\frac{\sum{(x-\bar{x})(y-\bar{y})}}{\sum{(x-\bar{x})^{2}}} , \quad b=\bar{y}-m\cdot\bar{x} \] 其中,\(\bar{x}\),\(\bar{y}\)分别是所有输入特征均以及目标向量的平均数[^3]。 ```python def compute_coefficients(x, y): n = len(x) sum_x = np.sum(x) sum_y = np.sum(y) xy = x.T.dot(y)[0][0] xx = x.T.dot(x)[0][0] mean_x = sum_x / n mean_y = sum_y / n slope = (xy - n*mean_x*mean_y)/(xx-n*(mean_x**2)) intercept = mean_y-slope*mean_x return slope,intercept slope, intercept = compute_coefficients(X,y) print(f"Slope: {slope}, Intercept:{intercept}") ``` 此函数`compute_coefficients()`接收两个数组作为输入——一个是独立变量\(X\),另一个是从属变量\(Y\);返回的是估计出来的斜率(slope)和截距(intercept)这两个参数。 #### 可视化结果 后一步是利用获得的结果绘制出拟合曲线并原始数据对比查看效果: ```python predicted_line = intercept+slope*X # 使用求得的参数预测新的y plt.figure(figsize=(8,6)) plt.scatter(X, y, label="Data Points", alpha=.7) plt.plot(X,predicted_line,'g',label=f'Fitted Line\nSlope={round(float(slope),2)}') plt.legend(loc="upper left") plt.title('Linear Regression with Least Squares Method') plt.xlabel('Independent Variable X') plt.ylabel('Dependent Variable Y') plt.grid(True) plt.show() ``` 上述绘图命令不仅显示了实际观察到的数据点,还叠加了一条绿色线条表示由最小二乘法得出的佳拟合直线。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吱昂张1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值