Python 科学计算第二版书稿编辑接近尾声

2015-05-01 22:03:25 +08:00
 ruoyu0088

经过近两年的编写工作,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]
    在cvcv2之间转换图像对象 [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]

6524 次点击
所在节点    Python
29 条回复
imn1
2015-05-01 22:06:12 +08:00
非常期待
第一版相当好
Kirscheis
2015-05-01 22:11:05 +08:00
赞。目前正在玩sympy,感觉真的很强大。希望有更多人用Python做科学计算
staticor
2015-05-01 22:35:21 +08:00
一定买.
wegamekinglc
2015-05-01 22:37:23 +08:00
期待楼主的第二版
bigtan
2015-05-01 22:49:46 +08:00
出了以后在v2ex组织一波团购吧。
anjunecha
2015-05-01 22:51:28 +08:00
加油!2015年必买书之一
em70
2015-05-01 22:59:27 +08:00
大爱,一定要出kindle版啊,现在不习惯买实体书了,原价都没关系
Kai
2015-05-01 23:04:13 +08:00
期待!
kdwycz
2015-05-02 09:44:48 +08:00
非常期待
ctexlive
2015-05-02 16:32:04 +08:00
好书 到时购买
102516949
2015-05-02 16:58:13 +08:00
已收藏
inframe
2015-05-02 23:24:08 +08:00
好顶赞!
facat
2015-05-03 00:03:40 +08:00
感觉numpy.array 和 scipy.sparse混用的时候各种坑,一不留神矩阵乘就变成点乘了,还难以发现
ruoyu0088
2015-05-03 06:53:54 +08:00
@facat 能举几个例子吗。
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())#这个是对的

就这样
ruoyu0088
2015-05-03 18:03:09 +08:00
@facat

a是数组,b是矩阵,数组和矩阵相乘使用矩阵乘没有问题吧。只有数组和数组乘才是对应元素相乘。另外可以用b.multiply(a)做元素乘。
facat
2015-05-03 21:44:48 +08:00
@ruoyu0088
"数组和矩阵相乘使用矩阵乘没有问题吧" 这个不是关键,它怎么定义数组和矩阵都可以,关键是你得一直记着哪个是什么类型,否则就容易出错。

退一步说,事先不说明“数组”和矩阵相乘不是点乘,很容易让大家犯错
ruoyu0088
2015-05-04 07:43:44 +08:00
@facat 矩阵乘和元素乘是容易搞混,numpy中还有一个表示矩阵的Matrix类,这个和数组一起用的时候也容易出错。所以最好的办法就是让所有的参数都是相同的类型。因此如果需要矩阵乘a*b就:sparse.csr_matrix(a).dot(b),如果需要元素乘就b.multiply(a)。

Python中一直有这样的问题,例如在Python2中除法/的运算结果和类型有关,必须得一直记住变量的类型。因此Python3把/定义为浮点除法,//定义为整数除法来解决这样的问题。以后会出现@表示矩阵乘法,这样就不会搞混了。
facat
2015-05-04 20:33:32 +08:00
@ruoyu0088 我现在的想法就是自己写mutiply函数,在里面调用numpy的方法,调用之前判断一下类型是否相同。貌似也只能这样了,但这真的是一个坑。
wuyu1998
2015-05-12 17:09:53 +08:00
《Python科学计算(附光盘内容)》
京 东 价:¥39.20

http://e.jd.com/30122948.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/187841

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX