Skip to content

在线 Python 环境

零配置开始编程 —— 云端运行 Python 的最佳选择


为什么使用在线环境?

优势

零配置:打开浏览器即可使用 免费资源:部分平台提供免费 GPU/TPU 随时随地:任何设备、任何地点都能编程 协作方便:轻松分享笔记本给同事 环境一致:避免"在我电脑上能跑"的问题

劣势

需要稳定的网络连接 部分功能受限(如大文件处理) 免费资源有时间限制


主流在线 Python 环境对比

平台免费GPU存储协作适用场景
Google Colab(Limited)Google Drive深度学习、教学、原型开发
Kaggle Notebooks(30h/week)20GB数据竞赛、机器学习
本网站环境浏览器学习 Python 基础
Deepnote5GB团队协作
JupyterLite浏览器轻量级学习

1️⃣ Google Colab(最推荐)

快速开始

  1. 访问 colab.research.google.com
  2. 登录 Google 账号
  3. 点击 "新建笔记本"(New Notebook)
  4. 开始编程!

基本操作

创建第一个单元格

python
# 这是代码单元格
print("Hello from Colab!")

import pandas as pd
df = pd.DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]})
df

运行:点击左侧的 ▶ 或按 Shift + Enter

上传数据文件

方法 1:临时上传(会话结束后删除)

python
from google.colab import files
uploaded = files.upload()

# 然后读取
import pandas as pd
df = pd.read_csv('your_file.csv')

方法 2:从 Google Drive 读取(推荐)

python
from google.colab import drive
drive.mount('/content/drive')

# 读取 Drive 中的文件
df = pd.read_csv('/content/drive/MyDrive/data/survey_data.csv')

Colab 独有功能

1. 使用免费 GPU

步骤

  1. 菜单栏:运行时更改运行时类型
  2. 硬件加速器:选择 GPUTPU
  3. 保存

检查 GPU 是否可用

python
import torch
print(f"GPU 可用: {torch.cuda.is_available()}")
if torch.cuda.is_available():
    print(f"GPU 型号: {torch.cuda.get_device_name(0)}")

2. 表单(Forms)功能

python
#@title 输入你的年龄 { run: "auto" }
age = 25 #@param {type:"slider", min:18, max:100, step:1}
name = "Alice" #@param {type:"string"}
gender = "Female" #@param ["Male", "Female", "Other"]

print(f"{name}, {age}岁, {gender}")

运行后会生成交互式表单!

3. 魔法命令扩展

python
# 安装新库
!pip install seaborn

# 运行 shell 命令
!ls -la

# 查看 GPU 信息
!nvidia-smi

# 下载文件
!wget https://example.com/data.csv

实战示例:完整的数据分析流程

python
# ========== 1. 环境设置 ==========
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# 设置样式
sns.set_style("whitegrid")
plt.rcParams['figure.figsize'] = (10, 6)

# ========== 2. 数据加载 ==========
# 方式 1: 从 URL 直接加载(推荐)
url = "https://raw.githubusercontent.com/mwaskom/seaborn-data/master/tips.csv"
df = pd.read_csv(url)

# 方式 2: 从 Google Drive 加载
# from google.colab import drive
# drive.mount('/content/drive')
# df = pd.read_csv('/content/drive/MyDrive/data.csv')

print(" 数据加载成功!")
df.head()

# ========== 3. 数据探索 ==========
print("\n 数据基本信息:")
print(df.info())

print("\n 描述性统计:")
display(df.describe())

# ========== 4. 数据可视化 ==========
# 小费分布
plt.figure(figsize=(12, 5))

plt.subplot(1, 2, 1)
plt.hist(df['tip'], bins=20, edgecolor='black', alpha=0.7)
plt.xlabel('Tip Amount')
plt.ylabel('Frequency')
plt.title('Distribution of Tips')

plt.subplot(1, 2, 2)
df.groupby('day')['tip'].mean().plot(kind='bar')
plt.xlabel('Day of Week')
plt.ylabel('Average Tip')
plt.title('Average Tip by Day')
plt.xticks(rotation=45)

plt.tight_layout()
plt.show()

# ========== 5. 统计分析 ==========
from scipy import stats

# 检验:周末 vs 工作日小费是否有差异
weekend_tips = df[df['day'].isin(['Sat', 'Sun'])]['tip']
weekday_tips = df[~df['day'].isin(['Sat', 'Sun'])]['tip']

t_stat, p_value = stats.ttest_ind(weekend_tips, weekday_tips)
print(f"\n T检验结果:")
print(f"   周末平均小费: ${weekend_tips.mean():.2f}")
print(f"   工作日平均小费: ${weekday_tips.mean():.2f}")
print(f"   p-value: {p_value:.4f}")

if p_value < 0.05:
    print("    差异显著(p < 0.05)")
else:
    print("    差异不显著")

# ========== 6. 保存结果 ==========
# 保存到 Google Drive
# df.to_csv('/content/drive/MyDrive/analysis_results.csv', index=False)

# 或下载到本地
# from google.colab import files
# df.to_csv('results.csv', index=False)
# files.download('results.csv')

2️⃣ Kaggle Notebooks

快速开始

  1. 访问 kaggle.com
  2. 注册/登录账号
  3. 点击 "Create""New Notebook"

Kaggle 的独特优势

1. 丰富的数据集

python
# 直接访问 Kaggle 数据集
import pandas as pd

# 例如:Titanic 数据集
df = pd.read_csv('/kaggle/input/titanic/train.csv')
df.head()

2. 每周 30 小时免费 GPU

  • GPU: NVIDIA Tesla P100
  • TPU: 也可用
  • 时间限制: 30小时/周

3. 社区和竞赛

  • 查看他人的优秀笔记本
  • 参加数据科学竞赛
  • 学习最佳实践

Kaggle 实战示例

python
# ========== Kaggle 竞赛模板 ==========
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# 1. 加载数据
train = pd.read_csv('/kaggle/input/titanic/train.csv')
test = pd.read_csv('/kaggle/input/titanic/test.csv')

# 2. 数据预处理
def preprocess(df):
    df = df.copy()
    df['Age'].fillna(df['Age'].median(), inplace=True)
    df['Embarked'].fillna(df['Embarked'].mode()[0], inplace=True)
    df['Fare'].fillna(df['Fare'].median(), inplace=True)

    # 编码类别变量
    df['Sex'] = df['Sex'].map({'male': 0, 'female': 1})
    df = pd.get_dummies(df, columns=['Embarked'], drop_first=True)

    return df

train_processed = preprocess(train)
test_processed = preprocess(test)

# 3. 特征选择
features = ['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare',
            'Embarked_Q', 'Embarked_S']
X = train_processed[features]
y = train_processed['Survived']

# 4. 模型训练
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)

model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

# 5. 评估
val_pred = model.predict(X_val)
print(f"验证集准确率: {accuracy_score(y_val, val_pred):.3f}")

# 6. 预测并提交
test_pred = model.predict(test_processed[features])
submission = pd.DataFrame({
    'PassengerId': test['PassengerId'],
    'Survived': test_pred
})
submission.to_csv('submission.csv', index=False)
print(" 提交文件已生成!")

3️⃣ 本网站的 Python 运行环境

特点

  • 即时运行:无需登录
  • 学习友好:专为教学设计
  • 轻量级:基于 Pyodide(浏览器中的 Python)

️ 限制

  • 不支持所有库(如 TensorFlow、PyTorch)
  • 性能有限
  • 无法访问本地文件

适用场景

  • 学习 Python 基础语法
  • 练习 Pandas、NumPy
  • 简单的数据可视化

4️⃣ 其他在线平台

Deepnote(团队协作)

网址deepnote.com

优势

  • 实时协作(类似 Google Docs)
  • 版本控制
  • 集成数据库连接
  • 精美的数据可视化

适用:团队项目、公司内部数据分析

定价

  • 免费版:750 小时/月计算时间
  • Team 版:$33/用户/月

Replit(通用编程)

网址replit.com

优势

  • 支持多种编程语言
  • 可以部署 Web 应用
  • 实时协作

适用:学习编程、快速原型开发

Paperspace Gradient

网址gradient.paperspace.com

优势

  • 强大的 GPU 选择(包括 A100)
  • 持久化存储
  • 支持长时间运行
  • Jupyter 和 VS Code 界面

适用:深度学习研究、大规模训练

定价

  • 免费版:有限 GPU 时间
  • Growth: $8/月起

SageMaker Studio Lab(AWS)

网址studiolab.sagemaker.aws

优势

  • Amazon 提供的免费 Jupyter 环境
  • 12 小时/session,免费 GPU
  • 15GB 持久化存储
  • 无需信用卡

适用:机器学习实验、教学

Binder

网址mybinder.org

优势

  • 完全免费
  • 从 GitHub 仓库直接创建环境
  • 一键分享可复现的分析
  • 支持自定义环境(requirements.txt)

适用:分享研究代码、教学演示

使用示例

1. 将 Jupyter Notebook 上传到 GitHub
2. 访问 mybinder.org
3. 输入 GitHub 仓库 URL
4. 生成分享链接

专业研究者的云端工作流

场景 1:学术论文复现

问题:如何让审稿人和读者复现你的结果?

解决方案

  1. 将代码和数据放在 GitHub
  2. 在 README 中添加 Binder 徽章
  3. 点击徽章即可在线运行

示例 README.md

markdown
# 我的研究:教育对收入的影响

[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/yourname/yourrepo/main)

点击上面的徽章即可在线复现我的分析。

## 环境要求
见 requirements.txt

场景 2:大规模实验(GPU 需求)

需求对比

任务推荐平台GPU 类型免费时长
BERT 微调Colab Pro+A100付费 $50/月
图像分类(ResNet)KaggleP10030h/周
大规模训练PaperspaceA100/V100付费
教学演示SageMaker Studio LabT412h/session

场景 3:团队协作研究

最佳实践

工具组合

数据存储: Google Drive / Dropbox
代码版本: GitHub
协作环境: Deepnote / Colab
沟通: Slack / Teams

Deepnote 协作示例

python
# 团队成员 A 写的代码
def clean_data(df):
    """数据清洗函数"""
    df = df.dropna()
    df['log_income'] = np.log(df['income'])
    return df

# 团队成员 B 可以实时看到并使用
cleaned_df = clean_data(raw_df)

# 可以添加评论和建议
# @member_A: 这里是否需要处理异常值?

云平台深度对比

计算资源对比

平台CPURAMGPU(免费)GPU(付费)存储
Colab2 核12-13GBT4V100/A100临时
Colab Pro高优先级25GBT4/P100V100/A100200GB Drive
Kaggle4 核30GBP100/T4 (30h/周)N/A20GB 持久
Paperspace按需按需有限时间A100/V100按需付费
SageMaker Lab2 核16GBT4 (12h)N/A15GB 持久

功能对比

功能ColabKaggleDeepnotePaperspace
实时协作有限
版本控制手动自动Git 集成Git 集成
数据库连接需配置需配置内置需配置
调度任务
API 部署需第三方
私有环境

学术研究云端最佳实践

1. 可复现性检查清单

在提交论文前

python
# ========== 环境信息 ==========
import sys
import pandas as pd
import numpy as np

print(f"Python: {sys.version}")
print(f"Pandas: {pd.__version__}")
print(f"NumPy: {np.__version__}")

# ========== 随机种子 ==========
np.random.seed(42)

# ========== 数据来源 ==========
# 注释中说明数据来源和获取方式
# 数据来源:World Bank Open Data
# URL: https://data.worldbank.org/...
# 下载日期:2024-01-15

# ========== 完整工作流 ==========
# 1. 数据清洗
# 2. 描述性统计
# 3. 主回归
# 4. 稳健性检验

2. 大数据处理策略

python
# ========== 策略 1:分块处理 ==========
import pandas as pd

# 对于大文件(>2GB)
chunksize = 10000
chunks = []

for chunk in pd.read_csv('large_file.csv', chunksize=chunksize):
    # 处理每个块
    processed = chunk.groupby('category')['value'].mean()
    chunks.append(processed)

# 合并结果
result = pd.concat(chunks)

# ========== 策略 2:使用 Dask(分布式计算)==========
import dask.dataframe as dd

# Dask 可以处理超过内存的数据
ddf = dd.read_csv('huge_file.csv')
result = ddf.groupby('category')['value'].mean().compute()

# ========== 策略 3:采样分析 ==========
# 先用 10% 的数据开发代码
sample = pd.read_csv('large_file.csv', nrows=10000)
# 开发和测试代码...
# 确认无误后再用完整数据

3. GPU 使用最佳实践

python
# ========== 检查 GPU 可用性 ==========
import torch

if torch.cuda.is_available():
    device = torch.device("cuda")
    print(f"使用 GPU: {torch.cuda.get_device_name(0)}")
    print(f"GPU 内存: {torch.cuda.get_device_properties(0).total_memory / 1e9:.2f} GB")
else:
    device = torch.device("cpu")
    print("使用 CPU")

# ========== 释放 GPU 内存 ==========
import gc
import torch

# 删除不用的模型
del model
gc.collect()
torch.cuda.empty_cache()

# ========== 监控 GPU 使用 ==========
# 在 Colab 中
!nvidia-smi

# 或使用 Python
from pynvml import *
nvmlInit()
handle = nvmlDeviceGetHandleByIndex(0)
info = nvmlDeviceGetMemoryInfo(handle)
print(f"已用: {info.used / 1e9:.2f} GB")
print(f"空闲: {info.free / 1e9:.2f} GB")

4. 数据安全和隐私

敏感数据处理

python
#  不要将敏感数据硬编码
password = "my_secret_password"  # 危险!

#  使用环境变量(Colab)
from google.colab import userdata
password = userdata.get('MY_PASSWORD')

#  使用 Colab 的 Secrets(推荐)
# 左侧边栏 →  Secrets → 添加密钥
# 然后在代码中:
from google.colab import userdata
api_key = userdata.get('OPENAI_API_KEY')

数据脱敏

python
import hashlib

# 对敏感 ID 进行哈希
def anonymize_id(id_string):
    return hashlib.sha256(str(id_string).encode()).hexdigest()[:10]

df['anonymous_id'] = df['user_id'].apply(anonymize_id)

成本优化策略

免费资源最大化

策略 1:多平台组合

周一-周三: 使用 Colab(免费)
周四-周五: 使用 Kaggle(免费 30h GPU)
周末: 本地计算或 SageMaker Studio Lab

策略 2:优先级任务

轻量任务(数据清洗、EDA): 免费平台
GPU 密集任务(深度学习): 付费平台或本地
长时间任务: 本地服务器

策略 3:代码优化减少运行时间

python
#  低效代码(多次循环)
for i in range(len(df)):
    df.loc[i, 'new_col'] = df.loc[i, 'old_col'] * 2

#  向量化操作(快 100 倍)
df['new_col'] = df['old_col'] * 2

平台选择指南

根据场景选择

场景推荐平台
学习 Python 基础本网站环境
数据分析Google Colab
机器学习Google Colab / Kaggle
深度学习Google Colab (GPU) / Kaggle
团队协作Deepnote
参加竞赛Kaggle
快速原型Replit

根据需求选择

需求推荐平台
需要 GPUColab / Kaggle
需要大数据集Kaggle
需要长时间运行本地环境(Jupyter)
需要团队协作Deepnote / Colab
需要版本控制Deepnote / Kaggle

最佳实践

1. 数据管理

Colab

python
# 使用 Google Drive 存储数据
from google.colab import drive
drive.mount('/content/drive')

# 项目结构
# /content/drive/MyDrive/
# ├── projects/
# │   └── my_analysis/
# │       ├── data/
# │       ├── notebooks/
# │       └── outputs/

Kaggle

python
# 使用 Kaggle 数据集
# 或上传私有数据集(Settings → Data)

2. 环境管理

python
# 在笔记本开头列出所有依赖
!pip install pandas==1.5.3
!pip install scikit-learn==1.2.2

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

print(f"Pandas版本: {pd.__version__}")

3. 版本保存

Colab

  • 文件在Drive中保存副本
  • 文件保存版本(查看历史版本)

Kaggle

  • 每次运行自动保存版本
  • 可以恢复到任何历史版本

实战练习

练习 1:在 Colab 中完成数据分析

  1. 打开 Google Colab
  2. 从 URL 加载数据:
python
url = "https://raw.githubusercontent.com/datasets/covid-19/master/data/countries-aggregated.csv"
df = pd.read_csv(url)
  1. 分析不同国家的 COVID-19 趋势
  2. 保存笔记本到 Google Drive

练习 2:在 Kaggle 上探索数据集

  1. 访问 Kaggle
  2. 搜索 "House Prices" 数据集
  3. 创建新笔记本
  4. 进行探索性数据分析(EDA)

练习 3:对比本地与云端

同样的代码分别在:

  • 本网站环境
  • Google Colab
  • 本地 Jupyter

对比运行速度和功能差异


下一步

现在你已经掌握了:

  • Jupyter Notebook(本地交互式环境)
  • VS Code(专业开发环境)
  • 在线环境(云端运行)

在下一个模块中,我们将开始学习 Python 基础语法,正式进入编程世界!

准备好了吗?让我们继续!

基于 MIT 许可证发布。内容版权归作者所有。