城市脉络的数字化觉醒

当我们每天乘坐地铁穿越城市时,是否曾想过这些庞大的公共交通网络其实是一个个精妙的数据库?从东京到纽约,从北京到柏林,全球主要城市的轨道交通系统都在经历一场静默的革命——它们正在被转化为可分析、可视化、可深度挖掘的数据资源。这不仅改变了城市规划者的决策方式,更为开发者、数据科学家和普通市民打开了一扇全新的大门。

一、线路网络:图论视角下的城市拓扑

公共交通线路网络本质上是一个复杂的图结构。每个站点是图中的一个节点,每段轨道是连接节点的一条边。这种抽象化思考方式让我们能够用图论算法来解决实际问题。

import networkx as nx

创建地铁网络图 subway = nx.Graph()

添加站点(节点) subway.add_nodes_from([ "世纪大道", "陆家嘴", "南京东路", "人民广场", "徐家汇", "静安寺", "中山公园", "虹桥火车站", "浦东机场" ])

添加线路段(边)及权重(运行时间/分钟) subway.add_edge("世纪大道", "陆家嘴", weight=3) subway.add_edge("世纪大道", "南京东路", weight=8) subway.add_edge("南京东路", "人民广场", weight=3) subway.add_edge("人民广场", "静安寺", weight=5) subway.add_edge("静安寺", "中山公园", weight=4) subway.add_edge("徐家汇", "人民广场", weight=12) subway.add_edge("中山公园", "虹桥火车站", weight=20) subway.add_edge("世纪大道", "浦东机场", weight=45)

计算最短路径 shortest_path = nx.dijkstra_path(subway, "浦东机场", "虹桥火车站", weight="weight") print(f"最快路线: {' → '.join(shortest_path)}")

通过NetworkX库,我们可以轻松实现最短路径计算、网络中心性分析、站点覆盖率评估等功能。这些分析结果直接影响着线路优化、新站选址等关键决策。

二、时刻表数据:时间序列的深度学习

列车时刻表是公共交通数据中最具时间属性的部分。每日的运营数据包含发车时间、到达时间、间隔周期、换乘衔接等丰富信息。处理这类数据时,时间序列分析成为核心技能。

```python import pandas as pd from datetime import datetime

示例时刻表数据 schedule_data = { "station": ["A站", "B站", "C站", "D站", "E站"], "arrival_weekday": ["06:15", "06:23", "06:31", "06:42", "06:55"], "arrival_weekend": ["07:00", "07:08", "07:16", "07:27", "07:40"], "passengers_avg": [245, 189, 312, 156, 423] }

df = pd.DataFrame(schedule_data)

计算工作日与周末的差异 df["time_diff_minutes"] = df.apply( lambda row: (datetime.strptime(row["arrival_weekend"], "%H:%M") - datetime.str