20个好用到爆的Python实用脚本!

这篇具有很好参考价值的文章主要介绍了20个好用到爆的Python实用脚本!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近小编认真整理了20+个基于python的实战案例,主要包含:数据分析、可视化、机器学习/深度学习、时序预测等,案例的主要特点:

  • 提供源码:代码都是基于jupyter notebook,附带一定的注释,运行即可

  • 数据齐全:大部分案例都有提供数据,部分案例使用内置数据集

数据统计分析

基于python和第三方库进行数据处理和分析,主要使用pandas、plotly、matplotlib等库,具体案例:

电子产品(手机)销售分析:

(1)不同内存下的销量(代码片段)

nei_cun = color_size["Number_GB"].value_counts().reset_index()  
nei_cun.columns = ["Number_of_GB","Count"]  # 重命名  
nei_cun["Number_of_GB"] = nei_cun["Number_of_GB"].apply(lambda x: str(x) + "GB")  
  
fig = px.pie(nei_cun,  
             values="Count",  
             names="Number_of_GB")  
  
fig.show()  

python脚本,python,开发语言

(2)不同闪存Ram下的价格分布(代码片段)

fig = px.box(df, y="Sale Price",color="Ram")  
  
fig.update_layout(height=600, width=800, showlegend=False)  
  
fig.update_layout(  
    title={ "text":'不同<b>闪存</b>下的价格分布',   
            "y":0.96,    
            "x":0.5,    
            "xanchor":"center",    
            "yanchor":"top"    
          },  
  
    xaxis_tickfont_size=12,     
    yaxis=dict(  
        title='Distribution',    
        titlefont_size=16,    
        tickfont_size=12,    
    ),  
    legend=dict(  
        x=0,    
        y=1,  
        bgcolor='rgba(255, 255, 255, 0)',    
        bordercolor='rgba(2, 255, 255, 0)'     
    )  
)  
  
fig.show()  

python脚本,python,开发语言

7万条餐饮数据分析

fig = px.bar(df2_top3,x="行政区",y="店铺数量",color="类别",text="店铺数量")  
fig.update_layout(title="不同行政区下不同类别的店铺数量对比")  
fig.show()  

python脚本,python,开发语言

不同店铺下的点评数量对比:python脚本,python,开发语言

4个指标的关系:口味、环境、服务和人均消费

python脚本,python,开发语言

基于python实现RFM模型(用户画像)

RFM模型是客户关系管理(CRM)中的一种重要分析模型,用于衡量客户价值和客户创利能力。该模型通过以下三个指标来评估客户的价值和发展潜力:

  • 近期购买行为(R):指的是客户最近一次购买的时间间隔。这个指标可以反映客户的活跃程度和购买意向,进而判断客户的质量和潜在价值。

  • 购买的总体频率(F):指的是客户在一定时间内购买商品的次数。这个指标可以反映客户对品牌的忠诚度和消费习惯,进而判断客户的潜力和价值。

  • 花了多少钱(M):指的是客户在一定时间内购买商品的总金额。这个指标可以反映客户的消费能力和对品牌的认可度,进而判断客户的价值和潜力。

计算R、F、M三个指标值:

data['Recency'] = (datetime.now().date() - data['PurchaseDate'].dt.date).dt.days  
  
frequency_data = data.groupby('CustomerID')['OrderID'].count().reset_index()  
# 重命名  
frequency_data.rename(columns={'OrderID': 'Frequency'}, inplace=True)  
  
monetary_data = data.groupby('CustomerID')['TransactionAmount'].sum().reset_index()  
monetary_data.rename(columns={'TransactionAmount': 'MonetaryValue'}, inplace=True)  

可视化

可视化主要是讲解了matplotlib的3D图和统计相关图形的绘制和plotly_express的入门:

(1) matplotlib的3D图形绘制

plt.style.use('fivethirtyeight')  
fig = plt.figure(figsize=(8,6))  
  
ax = fig.gca(projection='3d')  
  
z = np.linspace(0, 20, 1000)  
x = np.sin(z)  
y = np.cos(z)  
  
surf=ax.plot3D(x,y,z)  
  
z = 15 * np.random.random(200)  
x = np.sin(z) + 0.1 * np.random.randn(200)  
y = np.cos(z) + 0.1 * np.random.randn(200)  
ax.scatter3D(x, y, z, c=z, cmap='Greens')  
  
plt.show()  

python脚本,python,开发语言

plt.style.use('fivethirtyeight')  
fig = plt.figure(figsize=(14,8))  
  
ax = plt.axes(projection='3d')  
ax.plot_surface(x,   
                y,  
                z,   
                rstride=1,  
                cstride=1,   
                cmap='viridis',  
                edgecolor='none')  
  
ax.set_title('surface')  
  
# ax.set(xticklabels=[],  # 隐藏刻度  
#        yticklabels=[],  
#        zticklabels=[])  
  
plt.show()  

python脚本,python,开发语言

(2) 统计图形绘制

绘制箱型图:

np.random.seed(10)  
D = np.random.normal((3, 5, 4), (1.25, 1.00, 1.25), (100, 3))  
  
fig, ax = plt.subplots(2, 2, figsize=(9,6), constrained_layout=True)  
  
ax[0,0].boxplot(D, positions=[1, 2, 3])  
ax[0,0].set_title('positions=[1, 2, 3]')  
  
ax[0,1].boxplot(D, positions=[1, 2, 3], notch=True)  # 凹槽显示  
ax[0,1].set_title('notch=True')  
  
ax[1,0].boxplot(D, positions=[1, 2, 3], sym='+')  # 设置标记符号  
ax[1,0].set_title("sym='+'")  
  
ax[1,1].boxplot(D, positions=[1, 2, 3],   
                patch_artist=True,  
                showmeans=False,   
                showfliers=False,  
                medianprops={"color": "white", "linewidth": 0.5},  
                boxprops={"facecolor": "C0", "edgecolor": "white", "linewidth": 0.5},  
                whiskerprops={"color": "C0", "linewidth": 1.5},  
                capprops={"color": "C0", "linewidth": 1.5})  
ax[1,1].set_title("patch_artist=True")  
  
# 设置每个子图的x-y轴的刻度范围  
for i in np.arange(2):  
    for j in np.arange(2):  
        ax[i,j].set(xlim=(0, 4), xticks=[1,2,3],  
                    ylim=(0, 8), yticks=np.arange(0, 9))  
  
plt.show()  

python脚本,python,开发语言

绘制栅格图:

np.random.seed(1)  
x = [2, 4, 6]  
D = np.random.gamma(4, size=(3, 50))  
  
# plt.style.use('fivethirtyeight')  
  
fig, ax = plt.subplots(2, 2, figsize=(9,6), constrained_layout=True)  
  
# 默认栅格图-水平方向  
ax[0,0].eventplot(D)  
ax[0,0].set_title('default')  
  
# 垂直方向  
ax[0,1].eventplot(D,   
                  orientation='vertical',   
                  lineoffsets=[1,2,3])  
ax[0,1].set_title("orientation='vertical', lineoffsets=[1,2,3]")  
  
ax[1,0].eventplot(D,   
                  orientation='vertical',  
                  lineoffsets=[1,2,3],  
                  linelengths=0.5) # 线条长度  
ax[1,0].set_title('linelengths=0.5')  
  
ax[1,1].eventplot(D,   
                  orientation='vertical',  
                  lineoffsets=[1,2,3],  
                  linelengths=0.5,  
                 colors='orange')  
ax[1,1].set_title("colors='orange'")  
  
  
plt.show()  

python脚本,python,开发语言

(3) plotly_express入门 使用plotly_express如何快速绘制散点图、散点矩阵图、气泡图、箱型图、小提琴图、经验累积分布图、旭日图等

python脚本,python,开发语言

python脚本,python,开发语言

python脚本,python,开发语言

python脚本,python,开发语言

python脚本,python,开发语言

python脚本,python,开发语言

机器学习

基于机器学习的Titanic生存预测

目标变量分析:

python脚本,python,开发语言

python脚本,python,开发语言

相关性分析:

python脚本,python,开发语言

基于树模型的特征重要性排序代码:

f,ax=plt.subplots(2,2,figsize=(15,12))  
  
# 1、模型  
rf=RandomForestClassifier(n_estimators=500,random_state=0)  
# 2、训练  
rf.fit(X,Y)  
# 3、重要性排序  
pd.Series(rf.feature_importances_, X.columns).sort_values(ascending=True).plot.barh(width=0.8,ax=ax[0,0])  
# 4、添加标题  
ax[0,0].set_title('Feature Importance in Random Forests')  
  
ada=AdaBoostClassifier(n_estimators=200,learning_rate=0.05,random_state=0)  
ada.fit(X,Y)  
pd.Series(ada.feature_importances_, X.columns).sort_values(ascending=True).plot.barh(width=0.8,ax=ax[0,1],color='#9dff11')  
ax[0,1].set_title('Feature Importance in AdaBoost')  
  
gbc=GradientBoostingClassifier(n_estimators=500,learning_rate=0.1,random_state=0)  
gbc.fit(X,Y)  
pd.Series(gbc.feature_importances_, X.columns).sort_values(ascending=True).plot.barh(width=0.8,ax=ax[1,0],cmap='RdYlGn_r')  
ax[1,0].set_title('Feature Importance in Gradient Boosting')  
  
xgbc=xg.XGBClassifier(n_estimators=900,learning_rate=0.1)  
xgbc.fit(X,Y)  
pd.Series(xgbc.feature_importances_, X.columns).sort_values(ascending=True).plot.barh(width=0.8,ax=ax[1,1],color='#FD0F00')  
ax[1,1].set_title('Feature Importance in XgBoost')  
  
plt.show()      

不同模型对比:

python脚本,python,开发语言

基于KNN算法的iris数据集分类

特征分布情况:

pd.plotting.scatter_matrix(X_train,   
                           c=y_train,   
                           figsize=(15, 15),  
                           marker='o',   
                           hist_kwds={'bins': 20},   
                           s=60,  
                           alpha=.8  
                          )  
  
plt.show()  

python脚本,python,开发语言

混淆矩阵:

from sklearn.metrics import classification_report,f1_score,accuracy_score,confusion_matrix  
sns.heatmap(confusion_matrix(y_pred, y_test), annot=True)  
plt.show()  

python脚本,python,开发语言

对新数据预测:

x_new = np.array([[5, 2.9, 1, 0.2]])  
  
prediction = knn.predict(x_new)  

基于随机森林算法的员工流失预测

不同教育背景下的人群对比:

fig = go.Figure(data=[go.Pie(  
    labels=attrition_by['EducationField'],  
    values=attrition_by['Count'],  
    hole=0.4,  
    marker=dict(colors=['#3CAEA3', '#F6D55C']),  
    textposition='inside'  
)])  
  
  
fig.update_layout(title='Attrition by Educational Field',   
                  font=dict(size=12),   
                  legend=dict(  
                      orientation="h",  
                      yanchor="bottom",  
                      y=1.02,   
                      xanchor="right",  
                      x=1  
))  
  
fig.show()  

python脚本,python,开发语言

年龄和月收入关系:

python脚本,python,开发语言

类型编码:

from sklearn.preprocessing import LabelEncoder  
le = LabelEncoder()  
  
df['Attrition'] = le.fit_transform(df['Attrition'])  
df['BusinessTravel'] = le.fit_transform(df['BusinessTravel'])  
df['Department'] = le.fit_transform(df['Department'])  
df['EducationField'] = le.fit_transform(df['EducationField'])  
df['Gender'] = le.fit_transform(df['Gender'])  
df['JobRole'] = le.fit_transform(df['JobRole'])  
df['MaritalStatus'] = le.fit_transform(df['MaritalStatus'])  
df['Over18'] = le.fit_transform(df['Over18'])  
df['OverTime'] = le.fit_transform(df['OverTime'])  

相关性分析:

python脚本,python,开发语言

基于LSTM的股价预测

LSTM网络模型搭建:

from keras.models import Sequential  
from keras.layers import Dense, LSTM  
  
model = Sequential()  
# 输入层  
model.add(LSTM(128, return_sequences=True, input_shape= (xtrain.shape[1], 1)))  
# 隐藏层  
model.add(LSTM(64, return_sequences=False))  
model.add(Dense(25))  
# 输出层  
model.add(Dense(1))  
# 模型概览  
model.summary()  

交叉验证实现:

k = 5  
number_val = len(xtrain) // k  # 验证数据集的大小  
number_epochs = 20  
all_mae_scores = []  
all_loss_scores = []  
  
for i in range(k):  
    # 只取i到i+1部分作为验证集  
    vali_X = xtrain[i * number_val: (i+1) * number_val]  
    vali_y = ytrain[i * number_val: (i+1) * number_val]  
  
    # 训练集  
    part_X_train = np.concatenate([xtrain[:i * number_val],  
                                  xtrain[(i+1) * number_val:]],  
                                  axis=0  
                                 )   
    part_y_train = np.concatenate([ytrain[:i * number_val],  
                                  ytrain[(i+1) * number_val:]],  
                                  axis=0  
                                 )  
      
    print("pxt: \n",part_X_train[:3])  
    print("pyt: \n",part_y_train[:3])  
      
    # 模型训练  
    history = model.fit(part_X_train,  
                        part_y_train,  
                        epochs=number_epochs,  
                        # 传入验证集的数据  
                        validation_data=(vali_X, vali_y),  
                        batch_size=300,  
                        verbose=0  # 0-静默模式 1-日志模式  
                       )  
      
    mae_history = history.history["mae"]  
    loss_history = history.history["loss"]  
    all_mae_scores.append(mae_history)  
    all_loss_scores.append(loss_history)  

时序预测

基于AMIRA的销量预测

自相关性图:

python脚本,python,开发语言

偏自相关性:

python脚本,python,开发语言

预测未来10天

p,d,q = 5,1,2  
model = sm.tsa.statespace.SARIMAX(df['Revenue'],  
                                order=(p, d, q),  
                                seasonal_order=(p, d, q, 12))  
model = model.fit()  
model.summary()  
ten_predictions = model.predict(len(df), len(df) + 10)  # 预测10天  

python脚本,python,开发语言

基于prophet的天气预测

特征间的关系:

python脚本,python,开发语言

python脚本,python,开发语言

预测效果:python脚本,python,开发语言

其他案例

python的6种实现99乘法表

提供2种:

for i in range(1, 10):  
    for j in range(1, i+1):  # 例如3*3、4*4的情况,必须保证j能取到i值,所以i+1;range函数本身是不包含尾部数据  
        print(f'{j}x{i}={i*j} ', end="")  # end默认是换行;需要改成空格  
    print("\n")  # 末尾自动换空行  

for i in range(1, 10):       # 外层循环  
    j = 1      # 内层循环初始值  
    while j <= i:      # 内层循环条件:从1开始循环  
        print("{}x{}={}".format(i,j,(i*j)), end=' ')  # 输出格式  
        j += 1  # j每循环一次加1,进入下次,直到j<=i的条件不满足,再进入下个i的循环中  
    print("\n")  

i = 1  # i初始值  
  
while i <= 9:  # 循环终止条件  
    j = 1  # j初始值  
    while j <= i:    # j的大小由i来控制  
        print(f'{i}x{j}={i*j} ', end='')  
        j += 1   # j每循环一次都+1,直到j<=i不再满足,跳出这个while循环   
    i += 1  # 跳出上面的while循环后i+1,只要i<9就换行进入下一轮的循环;否则结束整个循环  
    print('\n')  

python实现简易计算器(GUI界面)

提供部分代码:

import tkinter as tk  
  
root = tk.Tk()    
root.title("Standard Calculator")    
root.resizable(0, 0)    
  
  
e = tk.Entry(root,  
             width=35,  
             bg='#f0ffff',  
             fg='black',  
             borderwidth=5,  
             justify='right',  
             font='Calibri 15')  
  
e.grid(row=0, column=0, columnspan=3, padx=12, pady=12)  
  
# 点击按钮  
def buttonClick(num):   
    temp = e.get(  
    )    
    e.delete(0, tk.END)    
    e.insert(0, temp + num)    
  
# 清除按钮  
def buttonClear():    
    e.delete(0, tk.END)  
  
  
def buttonGet(oper):    
    global num1, math    
    num1 = e.get()    
    math = oper    
    e.insert(tk.END, math)  
    try:  
        num1 = float(num1)    
    except ValueError:    
        buttonClear()

学习资源推荐

如果你也喜欢编程,想通过学习Python获取更高薪资,这里给大家分享一份Python学习资料。

😝朋友们如果有需要的话,可以V扫描下方二维码免费领取🆓

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

python脚本,python,开发语言
一、Python学习路线

python脚本,python,开发语言

python脚本,python,开发语言

二、Python基础学习
1. 开发工具

python脚本,python,开发语言

2. 学习笔记

python脚本,python,开发语言

3. 学习视频

python脚本,python,开发语言

三、Python小白必备手册

python脚本,python,开发语言

四、数据分析全套资源

python脚本,python,开发语言

五、Python面试集锦
1. 面试资料

python脚本,python,开发语言

python脚本,python,开发语言

2. 简历模板

python脚本,python,开发语言

python脚本,python,开发语言

因篇幅有限,仅展示部分资料,添加上方即可获取文章来源地址https://www.toymoban.com/news/detail-803961.html

到了这里,关于20个好用到爆的Python实用脚本!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 10 个超级高效实用的 Python 自动化脚本!

    重复性任务总是耗时且无聊,想一想你想要一张一张地裁剪 100 张照片或 Fetch API、纠正拼写和语法等工作,所有这些任务都很耗时,为什么不自动化它们呢?在今天的文章中,我将与你分享 10 个 Python 自动化脚本。 所以,请你把这篇文章放在你的收藏清单上,以备不时之需。

    2024年02月08日
    浏览(52)
  • 超实用的十个超级实用事半功倍的Python自动化脚本

    一淘模板 56admin.com在日常的工作学习当中,我们总会遇到各式各样的问题,其中不少的问题都是一遍又一遍简单重复的操作,不妨直接用Python脚本来自动化处理,今天小编就给大家分享十个Python高级脚本,帮助我们减少无谓的时间浪费,提高工作学习中的效率。 给照片添加水

    2023年04月18日
    浏览(45)
  • 【Python小脚本】1分钟100完成100题,某脚本python根据题库选择答案,准确率100%,真的牛了(超级赞)源码可分享,亲测好用~

    对于新手而言,掌握好方向盘的打法非常重要,关系到我们能否顺利通过驾考,拿到驾照。而 开车时方向盘又是最重要的,握好方向盘等于是给自己的安全上了保险。  粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。 科目一考试为上机考试,100道题,题型为判

    2024年02月04日
    浏览(105)
  • 6个实用的 Python 自动化脚本,让你每天轻轻松松

    每天你都可能会执行许多重复的任务,例如阅读 pdf、播放音乐、查看天气、打开书签、清理文件夹等等,使用自动化脚本,就无需手动一次又一次地完成这些任务,非常方便。而在某种程度上,Python 就是自动化的代名词。今天分享 6 个非常有用的 Python 自动化脚本。 1、将

    2024年02月05日
    浏览(48)
  • 好用到爆,IDEA 版 Postman 面世了,功能真心强大

    IDEA是最常用的开发工具,很多程序员都想把它打造成一站式开发平台,于是安装了各种各样的插件。最近发现了一款IDEA插件RestfulFastRequest,细节做的真心不错,说它是IDEA版的Postman也不为过,推荐给大家! RestfulFastRequest号称是IDEA版本的Postman。它是一个功能强大的Restful API工

    2024年04月14日
    浏览(87)
  • 100天精通Python(实用脚本篇)——第112天:图像处理批量给图片添加水印,防盗必备建议收藏!!!(附上脚本代码)

    🔥🔥 本文已收录于 《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:

    2024年01月23日
    浏览(65)
  • 好用到爆!10个你可能不知道的VSCode开源工具神器

    作为一款广受欢迎的开源IDE,VSCode凭借其轻量级和高度可扩展的特性,成为了越来越多开发者的首选工具。但是,VSCode的强大功能并不仅限于其本身,是可以通过插件、主题和其他扩展来进一步扩展其功能。在本篇文章中,我将介绍10个原先你可能根本不知道的开源工具,这

    2024年02月11日
    浏览(40)
  • 又发现一款免费好用的 AI 写代码神器,好用到爆,GitHub Copilot 可以扔了。。

    大家好 ,我是R哥。 近两年 AI 太火了,风靡全球,AI 编程工具也没有落下,比如微软的 GitHub Copilot,还有阿里的通义灵码,连 JetBrains 系列工具都逼出了自家的 AI 功能。 大家知道我是 效率狂人 ,同样也是 工具狂人 ,之前给大家分享了不少开发神器,其中也不乏国内的优秀

    2024年03月18日
    浏览(76)
  • Spring Event 业务解耦神器,大大提高可扩展性,好用到爆!

    来源:blog.csdn.net/weixin_42653522/article/details/117151913 ApplicationContext 中的事件处理是通过 ApplicationEvent 类和 ApplicationListener 接口提供的。如果将实现了 ApplicationListener 接口的 bean 部署到容器中,则每次将 ApplicationEvent 发布到 ApplicationContext 时,都会通知到该 bean,这简直是典型的观

    2024年02月05日
    浏览(43)
  • 扔掉okhttp、httpClient,这款轻量级 HTTP 神器好用到爆

    前言 功能特性 快速使用 HTTP请求相关注解 配置项说明 高级功能 全局拦截器 调用适配器和数据转码器 总结 在 SpringBoot 项目直接使用 okhttp 、 httpClient 或者 RestTemplate 发起 HTTP 请求,既繁琐又不方便统一管理。因此,在这里推荐一个适用于 SpringBoot 项目的轻量级HTTP客户端框架

    2024年02月07日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包