点击(此处)折叠或打开
-
import os
-
from os import path
-
import re
-
import IPython.nbformat.current as nf
-
-
def iter_notebooks():
-
for folder, subfolder, files in os.walk(".."):
-
name = path.basename(folder)
-
if re.match(r"\d+-\w+", name):
-
for fn in files:
-
if fn.startswith("_"):
-
continue
-
if re.match(r"\w+-\d\d\d-.+?\.ipynb", fn):
-
fn = path.join(folder, fn)
-
yield path.abspath(fn)
-
-
-
class Heading(object):
-
def __init__(self, level, title):
-
self.level = level
-
self.title = title
-
self.text_count = 0
-
self.code_line = 0
-
self.children = []
-
-
def append_text(self, count):
-
self.text_count += count
-
-
def append_code(self, count):
-
self.code_line += count
-
-
def append_heading(self, heading):
-
self.children.append(heading)
-
-
@property
-
def total_count(self):
-
return self.text_count + sum(h.total_count for h in self.children)
-
-
@property
-
def total_line(self):
-
return self.code_line + sum(h.total_line for h in self.children)
-
-
root = Heading(0, u"Python科学计算")
-
stack = [root]
-
-
for fn in iter_notebooks():
-
with open(fn, "rb") as f:
-
nb = nf.read(f, "json")
-
first_heading = False
-
for cell in nb["worksheets"][0]["cells"]:
-
cell_type = cell["cell_type"]
-
if cell_type == "heading":
-
first_heading = True
-
if not first_heading:
-
continue
-
-
if cell_type == "markdown":
-
stack[-1].append_text(len(cell["source"]))
-
elif cell_type == "code":
-
stack[-1].append_code(len(cell["input"].split("\n")))
-
elif cell_type == "heading":
-
level = cell["level"]
-
heading = Heading(level, cell["source"])
-
while level <= stack[-1].level:
-
stack.pop()
-
stack[-1].append_heading(heading)
-
stack.append(heading)
-
-
def output(heading, level=0):
-
if level == 1:
-
print
-
print u" "*level + heading.title + " [%d, %d]" % (heading.total_count, heading.total_line)
-
for h in heading.children:
-
output(h, level+1)
-
- output(root)
Python科学计算 [327659, 9154]
Python科学计算环境的安装与简介 [13131, 206]
Python简介 [4899, 9]
Python2还是Python3 [264, 0]
开发环境 [1098, 1]
WinPython [823, 1]
Anaconda [141, 0]
IDE [2483, 8]
Spyder [2483, 8]
Pycharm [0, 0]
IPython Notebook入门 [5929, 156]
基本操作 [2669, 30]
运行IPython Notebook [691, 0]
操作单元 [581, 0]
安装MathJax [371, 7]
操作运算进程 [684, 11]
在线帮助和自动完成 [342, 12]
魔法(Magic)命令 [1886, 63]
显示matplotlib图表 [636, 10]
性能分析 [833, 43]
代码调试 [237, 10]
Notebook的显示系统 [1206, 63]
display模块 [310, 23]
自定义对象的显示格式 [797, 40]
扩展库介绍 [2303, 41]
数值计算库 [539, 5]
符号计算库 [158, 3]
绘图与可视化 [440, 9]
数据处理和分析 [257, 6]
界面设计 [416, 0]
图像处理和计算机视觉 [190, 8]
提高运算速度 [234, 10]
NumPy-快速处理数据 [45457, 813]
ndarray对象 [12185, 196]
创建 [550, 13]
元素类型 [998, 19]
自动生成数组 [1852, 21]
存取元素 [1250, 32]
多维数组 [2154, 30]
结构数组 [1780, 46]
内存结构 [3365, 34]
ufunc函数 [7478, 106]
四则运算 [1071, 5]
比较和布尔运算 [1349, 11]
自定义ufunc函数 [960, 14]
广播 [1645, 33]
ufunc的方法 [1317, 10]
多维数组的下标存取 [3015, 45]
下标对象 [414, 5]
整数数组作为下标 [1202, 24]
一个复杂的例子 [827, 9]
布尔数组作下标 [479, 7]
庞大的函数库 [18693, 360]
随机数 [1212, 30]
求和、平均值、方差 [2541, 39]
大小与排序 [2940, 65]
统计函数 [2001, 20]
分段函数 [2068, 29]
操作多维数组 [1984, 52]
多项式函数 [1254, 30]
多项式类 [277, 14]
各种乘积运算 [1294, 36]
广义ufunc函数 [3011, 45]
实用技巧 [3640, 104]
动态数组 [1540, 35]
和其它对象共享内存 [1320, 38]
与结构数组共享内存 [780, 20]
利用缓存提高数组访问速度 [0, 11]
SciPy-数值计算库 [41307, 1325]
常数和特殊函数 [1199, 27]
拟合与优化-optimize [4980, 199]
非线性方程组求解 [1499, 26]
最小二乘拟合 [1379, 95]
计算的函数局域最小值 [1473, 56]
计算全域最小值 [566, 22]
线性代数-linalg [5629, 117]
解线性方程组 [953, 24]
最小二乘解 [1646, 29]
特征值和特征向量 [2109, 49]
奇异值分解-SVD [868, 15]
统计-stats [8703, 247]
连续和离散概率分布 [2421, 47]
二项、泊松、伽玛分布 [3303, 101]
学生t-分布与t检验 [1500, 56]
卡方分布和卡方检验 [1340, 43]
数值积分-integrate [8826, 317]
球的体积 [1153, 17]
解常微分方程组 [904, 24]
ode类 [2465, 125]
信号处理-signal [81, 0]
中值滤波 [558, 11]
滤波器设计 [1179, 48]
连续时间线性系统 [2398, 92]
插值-interpolate [4210, 159]
一维插值 [2501, 83]
外推和Spline拟合 [1119, 42]
参数插值 [513, 14]
单调插值 [166, 12]
多维插值 [1628, 76]
稀疏矩阵-sparse [2379, 89]
稀疏矩阵的储存形式 [780, 17]
最短路径 [1242, 72]
图像处理-ndimage [5132, 168]
图像滤波 [341, 28]
热点图 [309, 28]
形态学图像处理 [2287, 89]
膨胀和腐蚀 [911, 26]
Hit和Miss [1224, 44]
图像测量 [2225, 51]
matplotlib-绘制精美的图表 [44207, 1116]
快速绘图 [7166, 133]
使用pyplot模块绘图 [2120, 28]
面向对象方式绘图 [939, 3]
配置属性 [694, 18]
绘制多子图 [1363, 26]
配置文件 [931, 16]
在图表中显示中文 [1119, 42]
Artist对象 [7245, 131]
Artist的属性 [886, 6]
Figure容器 [1192, 14]
Axes容器 [2009, 27]
Axis容器 [1123, 66]
Artist对象的关系 [714, 8]
坐标变换和注释 [8924, 128]
四种坐标系 [1604, 9]
坐标变换的流水线 [3464, 23]
制作阴影效果 [482, 18]
添加注释 [2112, 17]
块、路径和集合 [4522, 185]
Path与Patch [803, 15]
集合 [3719, 170]
曲线集合(LineCollection) [878, 76]
多边形集合(PolyCollection) [301, 27]
路径集合(PathCollection) [468, 13]
椭圆集合(EllipseCollection) [932, 18]
数据空间中的圆形集合对象 [472, 36]
绘图函数简介 [7031, 161]
对数坐标图 [391, 12]
极坐标图 [318, 12]
柱状图 [479, 10]
散列图 [663, 8]
图像 [1259, 38]
等值线图 [1664, 34]
四边形网格 [871, 35]
三维绘图 [1239, 12]
绘图后台 [3325, 298]
使用agg后台在图像上绘图 [306, 148]
响应事件 [2971, 150]
键盘事件 [725, 26]
鼠标事件 [942, 57]
点选事件 [365, 17]
实时高亮显示曲线 [850, 50]
事件、动画与控件 [5585, 80]
动画 [1251, 49]
使用缓存快速重绘图表 [503, 17]
animation模块 [493, 17]
控件 [4204, 31]
分析Cursor的代码 [3906, 18]
图像遮罩绘制控件 [132, 12]
Pandas-方便的数据分析库 [11027, 199]
分析Pandas项目的提交历史 [3276, 43]
按月统计 [757, 13]
按作者统计 [1078, 17]
Pandas中的数据对象 [3730, 44]
Series对象 [1586, 21]
DataFrame对象 [640, 0]
Index对象 [322, 7]
DataFrame的内部结构 [1182, 16]
下标存取 [1284, 14]
内部提速函数 [2479, 97]
获取第N小的元素 [215, 7]
中值滤波 [713, 30]
HashTable [630, 12]
对象数组相关的函数 [478, 9]
药剂反应实验数据分析 [266, 39]
SymPy-符号运算好帮手 [6865, 161]
从例子开始 [4244, 3]
封面上的经典公式 [4188, 3]
机械运动学模拟 [2362, 158]
推导系统的微分方程 [909, 32]
将符号表达式转换为程序 [1118, 87]
动画演示 [192, 36]
Traits & TraitsUI-轻松制作图形界面 [37679, 943]
Traits类型入门 [6649, 116]
开发背景 [1822, 22]
Trait属性的功能 [2203, 44]
Trait类型对象 [921, 28]
Trait的元数据 [1703, 22]
Trait类型 [8107, 212]
预定义的Trait类型 [2917, 38]
Property属性 [1376, 22]
Trait属性监听 [1467, 65]
Event和Button属性 [581, 22]
代理属性 [1265, 46]
动态添加Trait属性 [501, 19]
创建自己的Trait类型 [3013, 109]
继承TraitType [1433, 49]
使用Trait类创建新类型 [958, 21]
TraitHandler类 [526, 39]
TraitsUI入门 [9996, 178]
缺省界面 [609, 9]
用View定义界面 [8938, 169]
外部视图和内部视图 [3773, 57]
多模型视图 [975, 35]
Group对象 [2914, 75]
配置视图 [1165, 2]
用Handler控制界面和模型 [4356, 109]
用Handler处理事件 [2279, 66]
Controller和UIInfo对象 [649, 16]
响应Trait属性的事件 [747, 27]
属性编辑器 [4928, 166]
编辑器演示程序 [1215, 77]
对象编辑器 [3236, 88]
IPython Notebook中的控件 [185, 53]
TVTK与Mayavi-数据的三维可视化 [37885, 999]
VTK的流水线(Pipeline) [5124, 69]
显示圆锥 [1949, 37]
用ivtk观察流水线 [3081, 32]
照相机 [629, 4]
光源 [415, 7]
实体 [1136, 4]
数据集(Dataset) [6367, 136]
ImageData [2546, 48]
RectilinearGrid [687, 16]
StructuredGrid [1345, 30]
PolyData [1495, 42]
TVTK的改进 [2344, 91]
TVTK的基本用法 [1060, 0]
Trait属性 [327, 7]
序列化(Pickling) [156, 15]
集合迭代 [130, 24]
数组操作 [286, 15]
TVTK可视化实例 [8932, 331]
切面 [3260, 69]
等值面 [1491, 31]
流线 [2433, 61]
计算圆柱的相贯线 [1487, 170]
用mlab快速绘图 [11263, 186]
点和线 [1365, 13]
Mayavi的流水线 [1888, 22]
二维图像的可视化 [2306, 39]
网格面mesh [1621, 41]
修改和控制流水线 [1212, 39]
标量场 [1592, 12]
矢量场 [932, 20]
Mayavi和TVTK的关系 [1300, 37]
显示TVTK流水线 [380, 16]
两条流水线的关系 [766, 21]
将TVTK和Mayavi嵌入到TraitsUI界面中 [1891, 146]
TVTK场景的嵌入 [697, 48]
Mayavi场景的嵌入 [1063, 98]
OpenCV-图像处理和计算机视觉 [25245, 566]
数据类型 [3759, 52]
图像类型 [818, 8]
类型转换 [2174, 26]
图像处理 [4954, 43]
二维卷积 [1521, 29]
形态学运算 [1269, 1]
填充-floodFill [1333, 13]
去瑕疵-inpaint [726, 0]
图像变换 [8225, 337]
几何变换 [1374, 47]
重映射-remap [1584, 71]
直方图 [2570, 100]
直方图反向映射 [1080, 32]
直方图匹配 [496, 46]
二维离散傅立叶变换 [1513, 47]
用双目视觉图像计算深度信息 [1184, 72]
图像识别 [7546, 114]
用Hough变换检测直线和圆 [2877, 75]
图像分割 [2017, 39]
Mean-Shift法 [723, 13]
分水岭算法 [1197, 26]
SURF特征匹配 [2612, 0]
形状与结构分析 [562, 18]
Cython-编译Python程序 [26219, 1023]
Cython入门 [5323, 106]
计算矢量集的距离矩阵 [702, 57]
将Cython程序编译成扩展模块 [883, 21]
使用cdef关键字声明变量类型 [2889, 13]
使用cdef定义C语言函数 [757, 15]
高效处理数组 [3788, 217]
提高绘图速度 [1116, 131]
使用Python标准对象和API [2360, 85]
操作`list`和`tuple`对象 [1112, 63]
用`array.array`作动态数组 [1248, 22]
扩展类型(cdef类) [5537, 341]
扩展类型的基本结构 [994, 36]
一维浮点数向量类型 [2072, 119]
包装ahocorasick库 [2342, 186]
Cython技巧集 [8161, 266]
创建ufunc函数 [3139, 83]
快速调用DLL中的函数 [1488, 63]
调用BLAS函数 [3454, 120]
包装`saxpy()`函数 [1093, 34]
`dgemm()`高速矩阵乘积 [2191, 86]
使用泊松混合合成图像 [3307, 63]
泊松混合算法 [3176, 63]
信号处理与数字滤波器 [0, 255]
FDN混响 [0, 255]
Cython Speedup [0, 187]
推荐算法 [5409, 195]
推荐性能评价标准 [476, 12]
矩阵分解 [1155, 22]
使用最小二乘法实现矩阵分解 [2246, 46]
使用Cython迭代实现矩阵分解 [1101, 93]
物理模拟 [1991, 194]
悬链线 [1775, 109]
使用运动方程模拟悬链线 [484, 43]
通过能量最小值计算悬链线 [954, 44]
最速降线 [216, 85]
频域信号处理 [9479, 364]
FFT知识复习 [1770, 30]
合成时域信号 [820, 56]
观察信号的频谱 [4693, 148]
窗函数 [636, 35]
频谱平均 [711, 27]
谱图 [822, 12]
精确测量信号频率 [892, 42]
卷积运算 [2046, 130]
快速卷积 [899, 36]
卷积的分段运算 [950, 94]
布尔可满足性问题求解器 [9085, 287]
用Cython包装PicoSAT [2394, 110]
数独游戏 [2314, 64]
扫雷游戏 [2550, 105]
识别雷区中的数字 [856, 35]
用SAT扫雷 [1061, 69]
自动扫雷 [376, 1]
分形 [9366, 445]
Mandelbrot集合 [2232, 103]
纯Python实现 [451, 32]
用Cython提速 [303, 10]
连续的逃逸时间 [466, 19]
Mandelbrot演示程序 [504, 42]
迭代函数系统(IFS) [3415, 125]
2D仿射变换 [865, 0]
迭代函数系统设计器 [1169, 67]
L-System分形 [1023, 104]
分形山脉 [2494, 113]
一维中点移位法 [979, 23]
二维中点移位法 [571, 40]
菱形方形算法 [833, 50]