当前位置:首页>python>7个常见Python库的正确用法

7个常见Python库的正确用法

  • 2026-09-08 13:49:40
7个常见Python库的正确用法

很多人学Python库并不吃力,但却用不好,要么速度慢,要么比不用还繁琐

下面说说我在工作中怎么用这些库的


1. Pandas:你以为你熟悉它

pandas是入门级库,但用得好的人极少。

大多数人把它当Excel用——选中、筛选、复制粘贴。

这就错了。

pandas真正的威力是构建可复用的数据管道。

def clean_sales_data(df):
    return
 (
        df
        .dropna(subset=["price", "quantity"])
        .assign(total=lambda x: x["price"] * x["quantity"])
        .query("total > 0")
    )

这不是清洗数据,这是标准化数据处理流程。

2. NumPy:跑得慢的元凶

你可能很少直接调用NumPy,但它几乎在所有库的幕后运行。

说实话:代码跑得慢,基本是因为没用数组思维。

❌ 低效写法:

totals = []
for
 i in range(len(prices)):
    totals.append(prices[i] * quantities[i])

✅ 正确姿势:

import numpy as np
totals = np.array(prices) * np.array(quantities)

从循环到向量化,一行之差,速度提升几百倍。

在自动化场景里,这就是"能用"和"被弃用"的区别。


3. Matplotlib/Seaborn:不是用来画图的

什么?可视化库不是用来画图的吗?

对,但不全对。

我用它们来及早发现数据问题。

拿到数据集,先画个直方图:

import matplotlib.pyplot as plt
plt.hist(df["salary"], bins=30)
plt.title("Salary Distribution")
plt.show()

因为异常值不会自己跳出来,它们会悄悄搞垮你的模型。

Seaborn更直观:

import seaborn as sns
sns.boxplot(x=df["salary"])

5秒钟发现可能要花几小时排查的问题。


4. Scikit-learn:不止是机器学习

scikit-learn = 机器学习?

这个等式害了很多人。

它其实是最好的数据处理工具包之一。

缩放数据:

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaled = scaler.fit_transform(df[["age", "income"]])

但真正的用法是链式转换:

from sklearn.pipeline import Pipeline
pipeline = Pipeline([
    ("scale", StandardScaler()),
    ("model", SomeModel())
])

这时候你不是在跑模型,而是在建系统。


5. Requests:真实数据的入口

你的数据如果只来自CSV文件,那你在学校,不在公司。

真实数据在API里。

import requests
response = requests.get("https://api.example.com/data")
data = response.json()

就这些。但加上自动化,你可以:

  • • 每天拉取实时数据
  • • 自动更新仪表盘
  • • 异常出现时触发告警

这才是数据科学从学术走向实用的转折点。


6. OpenPyXL:和Excel和平共处

你可能讨厌Excel。

但你的同事不讨厌。

与其对抗,不如用Python自动化Excel:

from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws["A1"] = "Report Generated"
ws["A2"] = "Revenue"
wb.save("report.xlsx")

想象一下:

  • • 管道自动运行
  • • 数据自动处理
  • • Excel报告自动生成
  • • 邮件自动发送

7. Schedule/Airflow:自动化的最后一环

没人告诉初学者的是:

代码不能自动跑,就不能扩展。

简单场景:

import schedule
import
 time
def
 job():
    print
("Running data pipeline...")
schedule.every().day.at("09:00").do(job)
while
 True:
    schedule.run_pending()
    time.sleep(1)

复杂系统 → 上Airflow。

真正的软件工程,不在于模型多高大上,而在于管道稳不稳,能不能睡觉不操心。

不需要50个库。

把7个用透,够你横着走了。

业余选手写能跑的代码。职业人士写能持续运行的代码。

                 

最新文章

随机文章