经过近两年的编写工作,Python科学计算第二版书稿编辑工作接近尾声,大概7月底能够交稿,下面是目前的目录,[]中的数字为相应章节的文字数和示例代码行数。也就是说目前大约有35万字,9900行示例代码。目前除第一章关于IPython的介绍,Pandas和Sympy章节尚未完成之外,其余章节均进入校对阶段。
另外本书的示例代码仓库:
https://github.com/ruoyu0088/scpy2
下面是详细目录:
Python科学计算(第二版) [352328, 9918]
Python科学计算环境的安装与简介 [15027, 184]
Python简介 [6633, 1]
Python2还是Python3 [455, 0]
开发环境 [1897, 0]
集成开发环境(IDE) [3227, 1]
IPython Notebook入门 [6045, 133]
基本操作 [2628, 7]
魔法(Magic)命令 [1886, 63]
Notebook的显示系统 [1206, 63]
扩展库介绍 [2349, 50]
数值计算库 [539, 5]
符号计算库 [158, 3]
绘图与可视化 [440, 11]
数据处理和分析 [257, 6]
界面设计 [416, 0]
图像处理和计算机视觉 [190, 8]
提高运算速度 [280, 17]
NumPy-快速处理数据 [47462, 886]
ndarray对象 [12329, 195]
创建 [552, 13]
元素类型 [990, 18]
自动生成数组 [1903, 22]
存取元素 [1335, 32]
多维数组 [2122, 30]
结构数组 [1815, 45]
内存结构 [3377, 34]
ufunc函数 [7354, 105]
四则运算 [1072, 5]
比较和布尔运算 [1346, 11]
自定义ufunc函数 [927, 14]
广播 [1622, 34]
ufunc的方法 [1276, 10]
多维数组的下标存取 [3061, 47]
下标对象 [416, 5]
整数数组作为下标 [1261, 24]
一个复杂的例子 [754, 11]
布尔数组作下标 [537, 7]
庞大的函数库 [20488, 444]
随机数 [1212, 30]
求和、平均值、方差 [2556, 38]
大小与排序 [2963, 64]
统计函数 [1982, 21]
分段函数 [1998, 29]
操作多维数组 [1983, 50]
多项式函数 [1256, 39]
多项式函数类 [1871, 88]
各种乘积运算 [1293, 38]
广义ufunc函数 [3263, 47]
实用技巧 [3780, 93]
动态数组 [1635, 35]
和其它对象共享内存 [1322, 38]
与结构数组共享内存 [772, 20]
SciPy-数值计算库 [41762, 1379]
常数和特殊函数 [1209, 29]
拟合与优化-optimize [5011, 216]
非线性方程组求解 [1544, 26]
最小二乘拟合 [1372, 102]
计算函数局域最小值 [1452, 66]
计算全域最小值 [579, 22]
线性代数-linalg [5686, 125]
解线性方程组 [1002, 24]
最小二乘解 [1675, 32]
特征值和特征向量 [2063, 52]
奇异值分解-SVD [893, 17]
统计-stats [9066, 297]
连续概率分布 [1467, 30]
离散概率分布 [517, 7]
核密度估计 [539, 16]
二项、泊松、伽玛分布 [3222, 127]
学生t-分布与t检验 [1778, 62]
卡方分布和卡方检验 [1404, 55]
数值积分-integrate [8882, 312]
球的体积 [1158, 18]
解常微分方程组 [865, 21]
ode类 [2423, 132]
信号处理-signal [58, 0]
中值滤波 [558, 10]
滤波器设计 [1121, 36]
连续时间线性系统 [2646, 95]
插值-interpolate [4434, 168]
一维插值 [2550, 85]
多维插值 [1801, 83]
稀疏矩阵-sparse [2465, 90]
稀疏矩阵的储存形式 [780, 17]
最短路径 [1332, 73]
图像处理-ndimage [4760, 140]
形态学图像处理 [2252, 94]
图像测量 [2077, 46]
matplotlib-绘制精美的图表 [44548, 1201]
快速绘图 [7400, 172]
使用pyplot模块绘图 [1797, 24]
面向对象方式绘图 [893, 3]
配置属性 [694, 15]
绘制多子图 [1630, 37]
配置文件 [1058, 42]
在图表中显示中文 [1069, 49]
Artist对象 [7063, 132]
Artist的属性 [882, 9]
Figure容器 [1185, 16]
Axes容器 [1938, 25]
Axis容器 [1091, 62]
Artist对象的关系 [639, 9]
坐标变换和注释 [8173, 125]
四种坐标系 [1599, 9]
坐标变换的流水线 [2809, 23]
制作阴影效果 [476, 18]
添加注释 [1964, 14]
块、路径和集合 [4744, 196]
Path与Patch [909, 16]
集合 [3774, 180]
绘图函数简介 [9720, 263]
对数坐标图 [332, 12]
极坐标图 [318, 12]
柱状图 [479, 11]
散列图 [663, 8]
图像 [1255, 38]
等值线图 [1766, 34]
四边形网格 [874, 38]
三角网格 [898, 33]
箭头图 [1753, 65]
三维绘图 [1235, 12]
matplotlib技巧集 [7120, 313]
使用agg后台在图像上绘图 [1204, 58]
响应鼠标与键盘事件 [3724, 169]
动画 [1243, 49]
添加GUI面板 [924, 37]
Pandas-方便的数据分析库 [12648, 249]
Pandas中的数据对象 [5445, 93]
Series对象 [821, 9]
DataFrame对象 [2287, 42]
Index对象 [417, 11]
MultiIndex对象 [565, 19]
DataFrame的内部结构 [1270, 12]
下标存取 [2781, 37]
[]操作符 [418, 2]
.loc[]和.iloc[]存取器 [470, 6]
获取单个值 [168, 2]
多级标签的存取 [345, 3]
query()方法 [0, 1]
赋值 [0, 0]
改变DataFrame的形状 [514, 18]
文件的输入输出 [1685, 20]
HDF5文件 [1435, 20]
内部提速函数 [2479, 97]
获取第N小的元素 [215, 7]
中值滤波 [713, 30]
HashTable [630, 12]
对象数组相关的函数 [478, 9]
药剂反应实验数据分析 [266, 39]
SymPy-符号运算好帮手 [11563, 339]
从例子开始 [1709, 21]
封面上的经典公式 [900, 12]
球体体积 [753, 9]
数学表达式 [2631, 66]
符号 [1073, 14]
数值 [570, 10]
运算符和函数 [918, 14]
通配符号 [0, 28]
符号运算 [2859, 55]
表达式变换和化简 [1341, 29]
方程 [247, 4]
微分 [370, 8]
微分方程 [156, 4]
积分 [686, 10]
输出表达式 [1743, 39]
lambdify
[440, 12]
用autowrap()
编译表达式 [446, 11]
使用cse()
分步输出表达式 [766, 16]
机械运动学模拟 [2362, 158]
推导系统的微分方程 [909, 32]
将符号表达式转换为程序 [1118, 87]
动画演示 [192, 36]
Traits & TraitsUI-轻松制作图形界面 [38876, 1188]
Traits类型入门 [6564, 116]
什么是Traits属性 [1336, 22]
Trait属性的功能 [2147, 44]
Trait类型对象 [921, 28]
Trait的元数据 [1703, 22]
Trait类型 [8195, 215]
预定义的Trait类型 [2973, 38]
Property属性 [1366, 25]
Trait属性监听 [1465, 65]
Event和Button属性 [581, 22]
代理属性 [1265, 46]
动态添加Trait属性 [501, 19]
创建自己的Trait类型 [2999, 109]
继承TraitType [1433, 49]
使用Trait类创建新类型 [944, 21]
TraitHandler类 [526, 39]
TraitsUI入门 [8673, 214]
缺省界面 [609, 9]
用View定义界面 [7615, 205]
用Handler控制界面和模型 [4332, 109]
用Handler处理事件 [2263, 66]
Controller和UIInfo对象 [641, 16]
响应Trait属性的事件 [747, 27]
属性编辑器 [5520, 274]
编辑器演示程序 [1345, 70]
对象编辑器 [2963, 99]
自定义编辑器 [742, 103]
函数曲线绘制工具 [2376, 151]
TVTK与Mayavi-数据的三维可视化 [36840, 997]
VTK的流水线(Pipeline) [5108, 59]
显示圆锥 [1940, 35]
用ivtk观察流水线 [3074, 24]
数据集(Dataset) [6455, 142]
ImageData [2551, 50]
RectilinearGrid [697, 18]
StructuredGrid [1355, 32]
PolyData [1558, 42]
TVTK的改进 [1937, 102]
TVTK的基本用法 [657, 12]
Trait属性 [323, 7]
序列化(Pickling) [156, 15]
集合迭代 [130, 24]
数组操作 [286, 14]
TVTK可视化实例 [9368, 348]
切面 [3659, 71]
等值面 [1533, 36]
流线 [2362, 67]
计算圆柱的相贯线 [1554, 174]
用mlab快速绘图 [11306, 191]
点和线 [1324, 13]
Mayavi的流水线 [1814, 22]
二维图像的可视化 [2222, 39]
网格面mesh [1615, 41]
修改和创建流水线 [1305, 41]
标量场 [1583, 14]
矢量场 [997, 21]
将TVTK和Mayavi嵌入到界面中 [2006, 151]
TVTK场景的嵌入 [721, 50]
Mayavi场景的嵌入 [1154, 101]
OpenCV-图像处理和计算机视觉 [31590, 900]
图像的输入输出 [4061, 128]
读入并显示图像 [1043, 15]
图像类型 [681, 42]
图像输出 [689, 22]
字节序列与图像相互转换 [496, 10]
视频输出 [725, 22]
视频输入 [311, 17]
图像处理 [5148, 49]
二维卷积 [1574, 30]
形态学运算 [1332, 2]
填充-floodFill [1413, 15]
去瑕疵-inpaint [724, 2]
图像变换 [8577, 346]
几何变换 [1455, 50]
重映射-remap [1701, 73]
直方图 [2574, 100]
二维离散傅立叶变换 [1527, 49]
用双目视觉图像计算深度信息 [1247, 74]
图像识别 [7582, 175]
用Hough变换检测直线和圆 [2941, 75]
图像分割 [2117, 41]
SURF特征匹配 [2465, 59]
形状与结构分析 [2385, 131]
轮廓检测 [1552, 72]
轮廓匹配 [761, 59]
类型转换 [3625, 69]
分析cv2的源程序 [1549, 57]
Mat
对象 [1326, 4]
在cv
和cv2
之间转换图像对象 [504, 8]
Cython-编译Python程序 [29499, 1040]
配置编译器 [1144, 17]
Cython入门 [7152, 130]
计算矢量集的距离矩阵 [638, 56]
将Cython程序编译成扩展模块 [883, 22]
C语言中的Python对象类型 [1389, 12]
使用cdef关键字声明变量类型 [2862, 18]
使用def定义函数 [831, 12]
使用cdef定义C语言函数 [459, 10]
高效处理数组 [3996, 219]
Cython的内存视图 [2638, 87]
用降采样提高绘图速度 [1282, 132]
使用Python标准对象和API [2217, 78]
操作list
对象 [1028, 26]
创建tuple
对象 [242, 31]
用array.array
作动态数组 [851, 21]
扩展类型(cdef类) [6154, 329]
扩展类型的基本结构 [884, 30]
一维浮点数向量类型 [2093, 113]
包装ahocorasick库 [2969, 186]
Cython技巧集 [8339, 267]
创建ufunc函数 [3205, 83]
快速调用DLL中的函数 [1485, 64]
调用BLAS函数 [3569, 120]
实例 [42513, 1555]
使用泊松混合合成图像 [3741, 65]
泊松混合算法 [1409, 0]
编写代码 [1783, 63]
演示程序 [418, 2]
物理模拟 [4434, 205]
悬链线 [1848, 113]
最速降线 [972, 40]
单摆模拟 [1552, 52]
推荐算法 [5893, 175]
读入数据 [515, 29]
推荐性能评价标准 [474, 12]
矩阵分解 [1433, 21]
使用最小二乘法实现矩阵分解 [2246, 46]
使用Cython迭代实现矩阵分解 [1143, 67]
频域信号处理 [9505, 365]
FFT知识复习 [1696, 29]
合成时域信号 [825, 57]
观察信号的频谱 [4792, 150]
卷积运算 [2042, 129]
布尔可满足性问题求解器 [9649, 292]
用Cython包装PicoSAT [2438, 111]
数独游戏 [2346, 64]
扫雷游戏 [3019, 109]
分形 [9251, 453]
Mandelbrot集合 [2178, 103]
迭代函数系统(IFS) [3381, 129]
L-System分形 [1029, 107]
分形山脉 [2460, 114]
1
imn1 2015-05-01 22:06:12 +08:00
非常期待
第一版相当好 |
2
Kirscheis 2015-05-01 22:11:05 +08:00 via iPhone
赞。目前正在玩sympy,感觉真的很强大。希望有更多人用Python做科学计算
|
3
staticor 2015-05-01 22:35:21 +08:00
一定买.
|
4
wegamekinglc 2015-05-01 22:37:23 +08:00
期待楼主的第二版
|
5
bigtan 2015-05-01 22:49:46 +08:00
出了以后在v2ex组织一波团购吧。
|
6
anjunecha 2015-05-01 22:51:28 +08:00
加油!2015年必买书之一
|
7
em70 2015-05-01 22:59:27 +08:00 via Android
大爱,一定要出kindle版啊,现在不习惯买实体书了,原价都没关系
|
8
Kai MOD 期待!
|
9
kdwycz 2015-05-02 09:44:48 +08:00
非常期待
|
10
ctexlive 2015-05-02 16:32:04 +08:00 via Android
好书 到时购买
|
11
102516949 2015-05-02 16:58:13 +08:00
已收藏
|
12
inframe 2015-05-02 23:24:08 +08:00 via Android
好顶赞!
|
13
facat 2015-05-03 00:03:40 +08:00
感觉numpy.array 和 scipy.sparse混用的时候各种坑,一不留神矩阵乘就变成点乘了,还难以发现
|
15
facat 2015-05-03 15:49:40 +08:00
@ruoyu0088
import numpy import scipy.sparse as sparse a=numpy.array([[1,2],[2,3]]) b=sparse.coo_matrix(([1,-1,0,1],([0,0,1,1],[0,1,0,1]) ) ,shape=(2,2)) print(a*b)#这个执行的事矩阵乘,但*号应该是点乘 print(a*b.toarray())#这个是对的 就这样 |
16
ruoyu0088 OP |
17
facat 2015-05-03 21:44:48 +08:00
@ruoyu0088
"数组和矩阵相乘使用矩阵乘没有问题吧" 这个不是关键,它怎么定义数组和矩阵都可以,关键是你得一直记着哪个是什么类型,否则就容易出错。 退一步说,事先不说明“数组”和矩阵相乘不是点乘,很容易让大家犯错 |
18
ruoyu0088 OP @facat 矩阵乘和元素乘是容易搞混,numpy中还有一个表示矩阵的Matrix类,这个和数组一起用的时候也容易出错。所以最好的办法就是让所有的参数都是相同的类型。因此如果需要矩阵乘a*b就:sparse.csr_matrix(a).dot(b),如果需要元素乘就b.multiply(a)。
Python中一直有这样的问题,例如在Python2中除法/的运算结果和类型有关,必须得一直记住变量的类型。因此Python3把/定义为浮点除法,//定义为整数除法来解决这样的问题。以后会出现@表示矩阵乘法,这样就不会搞混了。 |
19
facat 2015-05-04 20:33:32 +08:00
@ruoyu0088 我现在的想法就是自己写mutiply函数,在里面调用numpy的方法,调用之前判断一下类型是否相同。貌似也只能这样了,但这真的是一个坑。
|
20
wuyu1998 2015-05-12 17:09:53 +08:00
|
21
flamhaze5946 2015-05-14 23:31:53 +08:00
@wuyu1998 这个是第一版的,现在等第二版...
|
22
WildCat 2015-05-26 09:37:08 +08:00 via iPhone
楼主,进度如何了啊?有预计上市时间吗?
|
24
qinkun1234 2015-06-18 14:42:23 +08:00
那要到明年1月份才能 买到咯
|