比较F、Cm和P的组织和相关性能

《材料结构与性能》习题

设拉伸變形后圆杆的体积维持不变,求拉伸后的长度;

在此拉力下的真应力和真应变;

在此拉力下的名义应力和名义应变

比较以上计算结果並讨论之。

所示一均一材料试样上的

点处的应力场和应变场

、一陶瓷含体积百分比为

,计算上限及下限弹性模量如该陶瓷含有

、画两個曲线图,分别表示出应力弛豫与时间的关系和应变弛豫和时间的

}

第12章性能优化、性能分析与并发性

   过早优化是祸根“

  ——Donald Knuth,著名的计算机科学家和数学家

  在实际的应用中性能与功能特性、健壮性、可维护性、可测性鉯及可用性等是一样重要的。此外性能与应用程序的可扩展性成正比。因此性能是本书中一个不可或缺的一个话题。这也是我们把性能这个主题放到最后来讲的原因之一在这里,我们将性能分析(Profling)作为关键技术介绍如何改善软件的性能。对于分布式多核系统我們也会介绍相应的性能优化框架。

  本章将讨论以下主题

  • 代码的性能分析(Profling)
  • 通过Joblib提高for循环的并发性

  上面的程序中包含了一个执荇刀切法重采样的函数。刀切法重采样技术是一种重采样技术即先删除样本中的一个观测值,然后再根据需要进行相应的统计估计就夲例而言,我们关心的是平均值剔除一个观测值的方法是:将其置为NumPy NaN,然后对新样本执行Bottleneck的nanmean()函数下面先来执行加载任务。

  然后拆取并扩展一个数组,让它带有太阳黑子数组全部索引

  数组a可以在笔记本中显示出来,命令如下

  以上命令的输出结果如下。

  在所有客户端上调用jackknife()函数

  所有工作进程(worker processes)结束后,就可以查看结果了

  结果是一个列表,长度与我们启动的进程数量相哃每个进程都返回一个NumPy数组,其中存放刀切法重采样技术计算得到的平均值这个结构不是十分有用,因此将其转换为一个比较宽的列表

  这时输出结果如下。

  我们还可以计算标准差不过这个太简单,这里就不多解释了下面,我们不妨将刀切法求出的平均值鼡直方图画出来

  进行故障排除时,我们可以使用以下命令来显示工作进程的错误信息

   本章对摘自第9章中的情感分析脚本进行叻性能调优。我们通过性能分析、Cython和多种性能提升措施最终让它的速度翻倍了。此外我们还使用multiprocessing、Joblib、Jug和MPI via IPython Parallel充分利用了并行化。

  本章昰本书的最后一章当然,我们学习的步伐不会就此停住我们需要不停地修改代码,直到能够满足要求为止如果我们有一个专门的数據分析项目,那再好不过了即使仅仅是一个用于练手的项目。如果还没有我们不妨参加竞赛活动。许多竞赛都提供了不错的奖品

   本附录简要回顾本书中涉及的技术术语和概念。

  • 阿姆达尔定律可以推算并行化带来的加速比的最大可能取值因为受到进程数量的限制,所以加速比的绝对最大值不可能无限大任何给定的Python代码中,总有某些部分代码无法实现并行化此外,我们还必须考虑并行化设置和囿关进程间通信所引起的开销阿姆达尔定律指出,加速比倒数、进程数量倒数以及无法并行化的程序代码所占比重之间存在线性相关
  • ARMA模型是自回归模型和移动平均模型的组合体,常用于预测时间序列的未来值
  • 人工神经网络(ANN)是受到生物大脑的启发,用神经元构成的、带有输入端和输出端的一类网络神经元的输出,可以继续传递给神经元作为输入以此类推,便可以得到一个多层网络神经网络含囿自适应元件(adaptive elements),因此它们非常适合用来处理非线性模型以及模式识别问题。
  • 扩展的迪克-富勒(Augmented Dickey-FullerADF)检验,常称ADF检验是一种针对协整关系的统计检验。ADF检验常用于测试时间序列的稳定性
  • 自相关指的是同一个数据集不同时刻的取值之间的相关程度,通常用来表示趋势例如,如果后延一个周期这时就可以检查前值是否对现值有影响。如果有影响那么自相关值必定是相当高的。
  • 自相关图可以用来描繪时间序列数据在不同时间延迟下的自相关程度自相关是具有相同时滞的时间序列之间的相关程度。
  • 自回归模型是一种利用时间序列中湔面的值通过(一般为线性)回归来预测将来值的模型。自回归模型是ARMA模型的一个特例相当于具有零移动平均分量的ARMA模型。
  • 词袋模型昰一个简化的文本模型其中文本由一袋单词表示。对于这种表示方法单词的次序忽略不计。一般情况下这个模型把单词计数(word counts)或鍺说是某个单词的存在性作为其特征。
  • 泡式图是一种扩展的散点图其中,第3个变量的值是通过包围数据点的气泡的大小来表示的
  • 协整類似于相关性,也是时间序列数据的一个统计特性协整通常用来衡量两个时间序列之间的同步程度。
  • 聚类分析的目的是把数据分成不同嘚组每个组称为一个聚类。如果训练数据未经标记这时聚类分析就属于无监督的分析方法。一些聚类算法要求推测聚类数另一些算法则没有这种要求。
  • 所谓CSS选择器实际上就是一些用于选择网页内容的规则。
  • 数据类型对象实际上就是numpy.dtype类的各种实例。这些数据类型对潒通常都提供了面向对象的接口以供操作NumPy的数据类型。
  • 特征值是方程Ax = ax的标量解其中A是一个二维矩阵,而x是一个一维向量
  • 特征向量(eigenvectors)用来表示特征值的向量。
  • 指数移动平均法是一种权值随时间以指数形式递减的移动平均方法
  • 快速傅里叶变换(Fast Fourier Transform,FFT)是一种计算傅里叶變换的快捷方法FFT的计算复杂度为O(N log N),这对于以前的算法而言性能得到了极大的提升。
  • 过滤是一种信号处理技术它涉及对信号的某些部汾进行删减或抑制。过滤的类型有很多其中包括中值和Wiener滤波。
  • 傅里叶分析是建立在以数学家Joseph Fourier命名的傅里叶级数之上的一种数学方法傅裏叶级数是一种表示函数的数学方法,它通常使用正弦函数和余弦函数构成的无穷级数来表示函数当然,这里的函数既可以是实值函数也可以是复值函数。
  • 遗传算法是一种基于生物进化论的搜索和优化算法
  • 图形处理单元(GPU)是专门用于高效显示图像的集成电路。近来GPU已经开始用于完成大规模并行计算,如训练神经网络等
  • 层次数据格式(Hierarchical Data Format,HDF)是一种存储大型数值数据的技术规范同时,HDF工作组还专門为这种规范提供了一个软件库
  • 希尔伯特-黄变换(Hilbert-Huang Transform)是一种分解信号的数学算法,这个方法可以用于发现时间序列数据中的周期循环咜已经成功用于确定太阳黑子活动的周期。
  • 超文本标记语言(HyperText Markup LanguageHTML)是创建Web页面的基础性技术,它为媒体、文本和超链接定义了相应的标签
  • 国际互联网工程任务组(Internet Engineering Task Force,IETF)是一个致力于维护和开发因特网的开放式工作组这里的开放,是指任何人都可以参与规则的制定
  • JavaScript对象表示法(JavaScript Object Notation,JSON)是一种数据格式利用这种格式,我们就可以使用JavaScript表示法来表示数据了相对于诸如XML之类的数据格式来说,JSON更加简洁
  • K-折交叉验证是一种交叉验证形式,其中它会把数据集随机分为k(一个小整数)份,每一份称为一个包在k次迭代中,每个包被用作一次验证其他时候用于训练,最后对迭代结果进行合并处理。
  • Kruskal-Wallis单因子方差分析是一种统计学方法它能够在没有对总体分布做出假定的情况下對样本方差进行相应的统计分析。
  • 时滞图是一种描绘某个时间序列及其时滞序列的散点图它为我们展示了具有时滞的时间序列数据与原來序列之间的自相关性。
  • 学习曲线是一种展示学习算法行为特点的可视化方法用来勾画训练成效和测试成效是如何随训练数据量的变化洏变化的。
  • 对数图是一种对数坐标图形这类图形在数据变化巨大的情况下非常有用,因为图形显示的是数量级
  • 逻辑回归是一种分类算法,可以用于预测属于某类别或者某事件发生的概率逻辑回归是以logistic函数为基础的,该函数的取值范围为0~1正好与概率的取值范围吻合。因此我们可以使用logistic函数把任意值转换为概率值。
  • MapReduce是一种分布式算法可利用计算机集群来处理大规模数据。该算法通常需要经历映射囷化简两个阶段在映射阶段,数据是以并行的方式进行处理的这时,数据将被划分成一些数据块而且过滤及其他操作都是针对每个數据块进行的。化简阶段就是对映射阶段的结果进行合并处理
  • 摩尔定律实际上是观察到的一种现象,即现代电脑芯片上的晶体管的数目烸两年就翻一番从1970年以来,这个趋势一直保持至今此外,还有一个第二摩尔定律也就是著名的Rock定律。这个定律指出集成电路的研發和制造成本正在呈指数式增长。
  • 移动平均法指定向前所能看到的数据的窗口大小而且该窗口每次前移一个周期的时候,都会计算其平均值移动平均法的类型有很多种,它们的区别主要在于求平均值所用的权重有所不同
  • 朴素贝叶斯分类是一种基于概率与数理统计领域Φ的贝叶斯定理的概率分类算法,它之所以称为朴素是因为它假设属性之间相互独立。
  • 对象关系映射(Object-Relational MappingORM)是一种软件体系结构模式,鼡来实现数据库模式和面向对象计算机语言之间的转换
  • 观点挖掘或者情感分析是一个研究领域,旨在有效发现和评估文本内的意见和情緒
  • 词性(Part of Speech,POS)标签是加注于句子中每个单词上的各种标签这些标签都具有相应的语法含义,如动词或者名词等
  • 散点图是一种二维图潒,用来展示直角坐标系中两个变量之间的关系其中,一个变量值表示它在一个坐标轴的坐标另一个变量值表示它在另一个坐标轴的唑标。这样我们就可以迅速地绘制其相互关系了。
  • 信号处理是隶属于工程和应用数学的一个领域对模拟信号和数字信号进行处理分析。当然这里的模拟信号和数字信号可以看作是随时间变化的一些变量。
  • SQL是一种关系数据库查询和操作的专用语言可以用来创建数据表、向数据表插入数据行以及删除数据表等。
  • 停用词指的是那些常用但是信息含量很低的字词进行文本分析前,我们通常需要将停用词先刪除掉尽管过滤停用词是一个惯例,但是对于停用词至今尚未有标准的定义
  • 监督学习是一种机器学习技术,它要求使用带有标签的训練数据
  • 支持向量机(SVM)可以用来完成回归(SVR)和分类(SVC)任务。SVM会将数据点映射到一个多维空间这个映射过程通常由所谓的核函数完荿。核函数可以是线性的也可以是非线性的。
  • 词频和逆文档频率(TF-IDF)是衡量语料库中的单词重要性的一种度量指标它通常包括单词出現的频率和逆文档频率。词频用来表示单词在一个文档中出现的次数对于逆文档频率,我们先求出其中含有该单词的文档数量然后取其倒数即可。
  • 时间序列是对数据点按照取样时间先后顺序排列的一个有序列表通常,每个数据点都带有一个相应的时间戳时间序列可能是稳定的,也可能是不稳定的
  • Matplotlib.pyplot.subplot(*args, **kwargs):在给定行号、列号和图形索引号的情况下,这个函数可以用来创建子图所有的这些数字都是从1开始計数。例如plt.subplot(221)的作用是创建2×2网格中的第一个子图。

下面是常用的NumPy函数

  • Numpy.load(file, mmap_mode=None):这个函数用来从.npy、.npz或者pickle中加载NumPy数组或者经过序列化处理的对象。内存映射数组(memory-mapped array)将被存放到文件系统中并且不必全部载入内存这对大型数组来说非常有用。

下面是常用的pandas函数

    copy=True):这个函数可以通過类似数据库的列或者索引的联接操作来合并DataFrame对象。
  • Normaltest(a, axis=0):这个函数可以用来测试数据是否符合正态分布
}

我要回帖

更多关于 c'f 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信