
《NumPy学习指南(第2版)》笔记
文章平均质量分 88
对人邮图书《Python数据分析基础教程:NumPy学习指南(第2版)》内容进行提要。
并以Numpy1.20为运行环境修订书中代码。
mighty13
这个作者很懒,什么都没留下…
展开
-
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记17:第七章 专用函数3——窗函数
当前Numpy版本为:1.20第七章 专用函数7.23 窗函数窗函数(window function)是信号处理领域常用的数学函数,相关应用包括谱分析和滤波器设计等。这些窗函数除在给定区间之外取值均为0。NumPy中有很多窗函数,如bartlett、blackman、hamming、 hanning和kaiser。关于hanning函数的例子可以在第4章和第3章中找到。7.24 动手实践:绘制巴特利特窗巴特利特窗(Bartlett window)是一种三角形平滑窗。按如下步骤绘制巴特利特窗。原创 2021-07-27 17:02:02 · 32923 阅读 · 0 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记16:第七章 专用函数2——金融函数
当前Numpy版本为:1.20第七章 专用函数7.9 金融函数NumPy中有很多金融函数。Numpy 1.20之前的版本导入numpy,直接调用以下函数即可。(注意!Numpy 1.20之后的版本移除了金融函数,并将这些函数移至numpy_financial库。本文numpy版本为1.20,因此运行以下案例须安装并调用numpy_financial库,详见https://numpy.org/neps/nep-0032-remove-financial-functions.html)fv函数计算原创 2021-07-26 09:54:46 · 32730 阅读 · 0 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记15:第七章 专用函数1——排序
第七章 专用函数本章主要介绍金融计算或信号处理方面的Numpy函数。7.1 排序NumPy提供了多种排序函数,如下所示:sort函数返回排序后的数组;lexsort函数根据键值的字典序进行排序;argsort函数返回输入数组排序后的下标;ndarray类的sort方法可对数组进行原位排序;msort函数沿着第一个轴排序;sort_complex函数对复数按照先实部后虚部的顺序进行排序。在上面的列表中, argsort和sort函数可用来对NumPy数组类型进行排序。7.2 动手实践原创 2021-07-25 17:19:45 · 30642 阅读 · 0 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记14:第六章 深入学习NumPy模块2——随机数模块random
第六章 深入学习NumPy模块6.13 快速傅里叶变换FFT(Fast Fourier Transform,快速傅里叶变换)是一种高效的计算DFT(Discrete Fourier Transform,离散傅里叶变换)的算法。FFT算法比根据定义直接计算更快,计算复杂度为O(NlogN) 。DFT在信号处理、图像处理、求解偏微分方程等方面都有应用。在NumPy中,有一个名为fft的模块提供了快速傅里叶变换的功能。在这个模块中,许多函数都是成对存在的,也就是说许多函数存在对应的逆操作函数。例如,fft和i原创 2021-07-24 01:15:32 · 30709 阅读 · 1 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记13:第六章 深入学习NumPy模块1——线性代数模块numpy.linalg
numpy.dual模块包含同时在NumPy和SciPy中定义的函数。6.1 线性代数线性代数是数学的一个重要分支。numpy.linalg模块包含线性代数的函数。使用这个模块,我们可以计算逆矩阵、求特征值、解线性方程组以及求解行列式等。6.2 动手实践:计算逆矩阵在线性代数中,矩阵A与其逆矩阵A-1 相乘后会得到一个单位矩阵I。该定义可以写为A *A-1 =I。numpy.linalg模块中的inv函数可以计算逆矩阵。我们按如下步骤来对矩阵求逆。(1) 与前面的教程中一样,我们将使用mat函数原创 2021-07-23 15:59:54 · 30777 阅读 · 1 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记12:第五章 矩阵和通用函数2
第五章 矩阵和通用函数5.13 斐波那契数列斐波那契(Fibonacci)数列是基于递推关系生成的。直接用NumPy代码来解释递推关系是比较麻烦的,不过我们可以用矩阵的形式或者黄金分割公式来解释它。因此,我们将介绍matrix和rint函数。使用matrix函数创建矩阵,rint函数对浮点数取整,但结果仍为浮点数类型。5.14 动手实践:计算斐波那契数列斐波那契数列的递推关系可以用矩阵来表示。斐波那契数列的计算等价于矩阵的连乘。(1) 创建斐波那契矩阵:import numpy as np原创 2021-07-22 21:09:04 · 30929 阅读 · 3 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记11:第五章 矩阵和通用函数1
本章我们将学习矩阵和通用函数(universal functions,即ufuncs)的相关内容。矩阵作为一种重要的数学概念,在NumPy中也有专门的表示方法。通用函数可以逐个处理数组中的元素,也可以直接处理标量。通用函数的输入是一组标量,输出也是一组标量,它们通常可以对应于基本数学运算,如加、减、乘、除等。我们还将介绍三角函数、位运算函数和比较函数。第五章 矩阵和通用函数5.1 矩阵在NumPy中,矩阵是ndarray的子类,可以由专用的字符串格式来创建。与数学概念中的矩阵一样, NumPy中的矩阵原创 2021-07-21 22:52:34 · 30745 阅读 · 1 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记10:第四章 便捷函数2——
本章通过计算股票收益率相关性的案例演示NumPy数据分析。第四章 便捷函数4.5 净额成交量成交量(volume)是投资中一个非常重要的变量,它可以表示价格波动的大小。 OBV(On-Balance Volume,净额成交量或叫能量潮指标)是最简单的股价指标之一,它可以由当日收盘价、前一天的收盘价以及当日成交量计算得出。这里我们以前一日为基期计算当日的OBV值(可以认为基期的OBV值为0)。若当日收盘价高于前一日收盘价,则本日OBV等于基期OBV加上当日成交量。若当日收盘价低于前一日收盘价,则本日OB原创 2021-07-20 22:53:42 · 30897 阅读 · 1 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记9:第四章 便捷函数1——
本章通过计算股票收益率相关性的案例演示NumPy数据分析。第四章 便捷函数4.1 相关性不知你是否注意过这样的现象:某公司的股价被另外一家公司的股价紧紧跟随,并且它们通常是同领域的竞争对手。对于这种现象,理论上的解释是:因为这两家公司经营的业务类型相同,它们面临同样的挑战,需要相同的原料和资源,并且争夺同类型的客户。你可能会想到很多这样的例子,但还想检验一下它们是否真的存在关联。一种方法就是看看两个公司股票收益率的相关性,强相关性意味着它们之间存在一定的关联性。当然,这不是严格的证明,特别是当我们所原创 2021-07-19 17:37:17 · 30731 阅读 · 0 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记8:第三章 常用函数4——线性模型、数组修剪与压缩、阶乘
本章将介绍NumPy的常用函数。具体来说,我们将以分析历史股价为例,介绍怎样从文件中载入数据,以及怎样使用NumPy的基本数学和统计分析函数。这里还将学习读写文件的方法,并尝试函数式编程和NumPy线性代数运算。第三章 常用函数3.25 线性模型许多科学研究中都会用到线性关系的模型。NumPy的linalg包是专门用于线性代数计算的。下面的工作基于一个假设,就是一个价格可以根据N个之前的价格利用线性模型计算得出。3.26 动手实践:用线性模型预测价格我们姑且假设,**一个股价可以用之前股价的线性原创 2021-07-18 00:56:01 · 30702 阅读 · 1 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记7:第三章 常用函数3——最大值数组、卷积、指数、填充
本章将介绍NumPy的常用函数。具体来说,我们将以分析历史股价为例,介绍怎样从文件中载入数据,以及怎样使用NumPy的基本数学和统计分析函数。这里还将学习读写文件的方法,并尝试函数式编程和NumPy线性代数运算。第三章 常用函数3.17 真实波动幅度均值(ATR)ATR(Average True Range,真实波动幅度均值)是一个用来衡量股价波动性的技术指标。ATR的计算并不是重点,只是作为演示几个NumPy函数的例子,包括maximum函数。3.18 动手实践:计算真实波动幅度均值按照如下步骤原创 2021-07-17 01:00:49 · 30864 阅读 · 2 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记6:第三章 常用函数2——中位数、方差、日期、展平
本章将介绍NumPy的常用函数。具体来说,我们将以分析历史股价为例,介绍怎样从文件中载入数据,以及怎样使用NumPy的基本数学和统计分析函数。这里还将学习读写文件的方法,并尝试函数式编程和NumPy线性代数运算。第三章 常用函数3.9 统计分析股票交易者对于收盘价的预测很感兴趣。常识告诉我们,这个价格应该接近于某种均值。算数平均值和加权平均值都是在数值分布中寻找中心点的方法。然而,它们对于异常值(outlier)既不鲁棒也不敏感。举例来说,如果我们有一个高达100万美元的收盘价,这将影响到我们的计算结原创 2021-07-16 12:33:30 · 31541 阅读 · 2 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记5:第三章 常用函数1——文件读写、算术平均值、最大值最小值、极值
本章将介绍NumPy的常用函数。具体来说,我们将以分析历史股价为例,介绍怎样从文件中载入数据,以及怎样使用NumPy的基本数学和统计分析函数。这里还将学习读写文件的方法,并尝试函数式编程和NumPy线性代数运算。第三章 常用函数3.1 文件读写首先学习使用NumPy读写文件。通常情况下,数据是以文件形式存储的。学会读写文件是深入学习NumPy的基础。3.2 动手实践:读写文件作为文件读写示例,我们创建一个单位矩阵并将其存储到文件中,并按照如下步骤完成。(1) 单位矩阵,即主对角线上的元素均为1,原创 2021-07-15 19:12:06 · 30866 阅读 · 1 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记4:第二章 NumPy基础3——数组的组合、分割,数组转换为列表
第二章 NumPy基础3本章示例代码中的输入和输出均来自IPython会话。2.7 数组的组合NumPy数组有水平组合、垂直组合和深度组合等多种组合方式,我们将使用vstack、dstack、 hstack、 column_stack、 row_stack以及concatenate函数来完成数组的组合。2.8 动手实践:组合数组首先,我们来创建一些数组:In [1]: import numpy as npIn [3]: a = np.arange(9).reshape(3,3)In [4]:原创 2021-07-14 09:40:48 · 30743 阅读 · 0 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记3:第二章 NumPy基础2——数组的索引和切片、改变数组维度
第二章 NumPy基础2本章示例代码中的输入和输出均来自IPython会话。2.4 一维数组的索引和切片一维数组的切片操作与Python列表的切片操作很相似。例如,我们可以用下标3~7来选取元素3~6:In [27]: a = np.arange(9)In [28]: a[3:7]Out[28]: array([3, 4, 5, 6])也可以用下标0~7,以2为步长选取元素:In [29]: a[:7:2]Out[29]: array([0, 2, 4, 6])和Python中一样,原创 2021-07-13 14:08:50 · 30746 阅读 · 0 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记2:第二章 NumPy基础1——数据类型
第二章 NumPy基础1本章示例代码中的输入和输出均来自IPython会话。2.1 NumPy数组对象NumPy中的ndarray是一个多维数组对象,该对象由两部分组成:实际的数据;描述这些数据的元数据。大部分的数组操作仅仅修改修改元数据部分,而不改变底层的实际数据。在第1章中,我们已经知道如何使用arange函数创建数组。实际上,当时创建的数组只是包含一组数字的一维数组,而ndarray支持更高的维度。NumPy数组一般是同质的(但有一种特殊的数组类型例外,它是异质的),即数组中的所有原创 2021-07-12 19:18:53 · 31060 阅读 · 2 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记1:第一章 NumPy快速入门
NumPy快速入门1.1 PythonNumPy是基于Python的,因此在安装NumPy之前,需要先安装Python。某些操作系统已经默认安装有Python环境,但仍需检查Python的版本是否与将要安装的NumPy版本兼容。Python有很多种实现,包括一些商业化的实现和发行版。本书使用CPython实现,从而保证与NumPy兼容。1.2 动手实践:在不同的操作系统上安装 Python...原创 2021-07-11 23:47:48 · 30909 阅读 · 0 评论 -
《Python数据分析基础教程:NumPy学习指南(第2版)》笔记0:前言
前言NumPy是什么NumPy,即Numeric Python的缩写。尽管Python作为流行的编程语言非常灵活易用,但它本身并非为科学计算量身定做,在开发效率和执行效率上均不适合直接用于数据分析,尤其是大数据的分析和处理。 NumPy在保留Python语言优势的同时大大增强了科学计算和数据处理的能力。数据科学家们希望能够用最小的编程代价在大数据集上进行数值分析,他们希望自己编写的代码可读性好、执行效率高、运行速度快,并尽可能地贴近他们熟悉的一系列数学概念。在科学计算领域,有很多符合这些要求的解决原创 2021-07-10 22:12:58 · 30652 阅读 · 0 评论