V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
ruoyu0088
V2EX  ›  Python

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

  •  6
     
  •   ruoyu0088 · 2015-05-01 22:03:25 +08:00 · 6495 次点击
    这是一个创建于 3254 天前的主题,其中的信息可能已经有所发展或是发生改变。

    经过近两年的编写工作,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]

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

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

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

    退一步说,事先不说明“数组”和矩阵相乘不是点乘,很容易让大家犯错
    ruoyu0088
        18
    ruoyu0088  
    OP
       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
        19
    facat  
       2015-05-04 20:33:32 +08:00
    @ruoyu0088 我现在的想法就是自己写mutiply函数,在里面调用numpy的方法,调用之前判断一下类型是否相同。貌似也只能这样了,但这真的是一个坑。
    wuyu1998
        20
    wuyu1998  
       2015-05-12 17:09:53 +08:00
    《Python科学计算(附光盘内容)》
    京 东 价:¥39.20

    http://e.jd.com/30122948.html
    flamhaze5946
        21
    flamhaze5946  
       2015-05-14 23:31:53 +08:00
    @wuyu1998 这个是第一版的,现在等第二版...
    WildCat
        22
    WildCat  
       2015-05-26 09:37:08 +08:00 via iPhone
    楼主,进度如何了啊?有预计上市时间吗?
    ruoyu0088
        23
    ruoyu0088  
    OP
       2015-05-26 15:20:39 +08:00   ❤️ 1
    @WildCat 7月份交稿,然后到出版可能还需要等3,4个月时间。
    qinkun1234
        24
    qinkun1234  
       2015-06-18 14:42:23 +08:00
    那要到明年1月份才能 买到咯
    WildCat
        25
    WildCat  
       2015-09-15 18:52:36 +08:00
    @ruoyu0088 楼主 现在进度如何?方便通报吗
    ruoyu0088
        26
    ruoyu0088  
    OP
       2015-09-15 20:50:44 +08:00   ❤️ 1
    @WildCat 8 月底已经交稿了。
    WildCat
        27
    WildCat  
       2015-09-15 23:34:38 +08:00 via iPhone
    @ruoyu0088 期待^ω^
    WildCat
        28
    WildCat  
       2015-10-25 13:01:44 +08:00
    @ruoyu0088 还没有搜到第二版,希望您的书上市的时候可以 @ 一下我,或者发个帖子。感谢
    ruoyu0088
        29
    ruoyu0088  
    OP
       2015-10-25 14:35:28 +08:00   ❤️ 1
    @WildCat 等出版了一定会在这里发广告的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2584 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 15:53 · PVG 23:53 · LAX 08:53 · JFK 11:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.