Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
apachecn-ds-zh
提交
64f5283c
A
apachecn-ds-zh
项目概览
OpenDocCN
/
apachecn-ds-zh
9 个月 前同步成功
通知
1
Star
287
Fork
69
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
apachecn-ds-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
64f5283c
编写于
7月 23, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
股票代码一律写进内联代码中
上级
47062f73
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
13 addition
and
13 deletion
+13
-13
docs/numpy-beginners-guide-3e/ch03.md
docs/numpy-beginners-guide-3e/ch03.md
+1
-1
docs/numpy-beginners-guide-3e/ch04.md
docs/numpy-beginners-guide-3e/ch04.md
+7
-7
docs/numpy-beginners-guide-3e/ch07.md
docs/numpy-beginners-guide-3e/ch07.md
+5
-5
未找到文件。
docs/numpy-beginners-guide-3e/ch03.md
浏览文件 @
64f5283c
...
...
@@ -76,7 +76,7 @@ np.savetxt("eye.txt", i2))
## 实战时间 – 从 CSV 文件加载
我们如何处理 CSV 文件? 幸运的是,
`loadtxt()`
函数可以方便地读取 CSV 文件,拆分字段并将数据加载到 NumPy 数组中。 在以下示例中,我们将加载苹果(公司而不是水果)的历史股价数据。 数据为 CSV 格式,是本书代码集的一部分。 第一列包含一个标识股票的符号。 在我们的情况下,它是
AAPL
。 第二个是
`dd-mm-yyyy`
格式的日期。 第三列为空。 然后,依次获得开盘价,最高价,最低价和收盘价。 最后但并非最不重要的是当天的交易量。 这是一行的样子:
我们如何处理 CSV 文件? 幸运的是,
`loadtxt()`
函数可以方便地读取 CSV 文件,拆分字段并将数据加载到 NumPy 数组中。 在以下示例中,我们将加载苹果(公司而不是水果)的历史股价数据。 数据为 CSV 格式,是本书代码集的一部分。 第一列包含一个标识股票的符号。 在我们的情况下,它是
`AAPL`
。 第二个是
`dd-mm-yyyy`
格式的日期。 第三列为空。 然后,依次获得开盘价,最高价,最低价和收盘价。 最后但并非最不重要的是当天的交易量。 这是一行的样子:
```
py
AAPL
,
28
-
01
-
2011
,
,
344.17
,
344.4
,
333.53
,
336.1
,
21144800
...
...
docs/numpy-beginners-guide-3e/ch04.md
浏览文件 @
64f5283c
...
...
@@ -20,7 +20,7 @@
## 实战时间 – 交易相关货币对
在本节中,我们将使用两个样本数据集,其中包含日末价格数据。 第一家公司是
BHP(BHP),该公司活跃于石油,金属和钻石的开采。 第二个是淡水河谷(VALE
),这也是一家金属和采矿公司。 因此,活动有一些重叠,尽管不是 100%。 要评估相关对,请按照下列步骤操作:
在本节中,我们将使用两个样本数据集,其中包含日末价格数据。 第一家公司是
必和必拓(
`BHP`
),该公司活跃于石油,金属和钻石的开采。 第二个是淡水河谷(
`VALE`
),这也是一家金属和采矿公司。 因此,活动有一些重叠,尽管不是 100%。 要评估相关对,请按照下列步骤操作:
1.
首先,从本章示例代码目录中的 CSV 文件加载数据,特别是两种证券的收盘价,并计算收益。 如果您不记得该怎么做,请参阅第 3 章,“熟悉常用功能”中的示例。
2.
协方差告诉我们两个变量如何一起变化;
[
无非就是相关性
](
https://www.khanacademy.org/math/probability/regression/regression-correlation/v/covariance-and-the-regression-line
)
:
...
...
@@ -98,7 +98,7 @@
```
对角线上的值仅是
BHP 和 VALE 与它们自身的相关性,因此等于 1。在任何可能性下,都不会进行任何实际计算。 由于相关性是对称的,因此其他两个值彼此相等,这意味着 BHP 与 VALE 的相关性等于 VALE 与 BHP
的相关性。 似乎这里的相关性不是那么强。
对角线上的值仅是
`BHP`和`VALE`与它们自身的相关性,因此等于 1。在任何可能性下,都不会进行任何实际计算。 由于相关性是对称的,因此其他两个值彼此相等,这意味着`BHP`与`VALE`的相关性等于`VALE`与`BHP`
的相关性。 似乎这里的相关性不是那么强。
7.
另一个要点是,正在考虑的两只股票是否同步。 如果两只股票的差额是与均值之差的两个标准差,则认为它们不同步。
...
...
@@ -144,7 +144,7 @@
### 刚刚发生了什么?
我们分析了
BHP 和 VALE
收盘价的关系。 确切地说,我们计算了他们的股票收益的相关性。 我们通过
`corrcoef()`
函数实现了这一目标。 此外,我们看到了如何计算可以从中得出相关性的协方差矩阵。 另外,我们演示了
`diagonal()`
和
`trace()`
方法,它们分别为我们提供对角线值和矩阵迹线。 有关源代码,请参见本书代码包中的
`correlation.py`
文件:
我们分析了
`BHP`
和
`VALE`
收盘价的关系。 确切地说,我们计算了他们的股票收益的相关性。 我们通过
`corrcoef()`
函数实现了这一目标。 此外,我们看到了如何计算可以从中得出相关性的协方差矩阵。 另外,我们演示了
`diagonal()`
和
`trace()`
方法,它们分别为我们提供对角线值和矩阵迹线。 有关源代码,请参见本书代码包中的
`correlation.py`
文件:
```
py
from
__future__
import
print_function
...
...
@@ -215,7 +215,7 @@ Q1. 哪个函数返回两个数组的协方差?
NumPy
`polyfit()`
函数拟合多项式的一组数据点,即使基础函数不是连续的:
1.
继续使用
BHP 和 VALE
的价格数据,查看其收盘价之间的差异,并将其拟合为三次方的多项式:
1.
继续使用
`BHP`
和
`VALE`
的价格数据,查看其收盘价之间的差异,并将其拟合为三次方的多项式:
```py
bhp=np.loadtxt('BHP.csv', delimiter=',', usecols=(6,), unpack=True)
...
...
@@ -245,7 +245,7 @@ NumPy `polyfit()`函数拟合多项式的一组数据点,即使基础函数不
```
3.
理想情况下,
BHP 和 VALE
的收盘价之间的差异应尽可能小。 在极端情况下,它有时可能为零。 使用
`roots()`
函数找出多项式拟合何时达到零:
3.
理想情况下,
`BHP`
和
`VALE`
的收盘价之间的差异应尽可能小。 在极端情况下,它有时可能为零。 使用
`roots()`
函数找出多项式拟合何时达到零:
```py
print( "Roots", np.roots(poly))
...
...
@@ -633,7 +633,7 @@ print("Average loss %", round(np.mean(losing_trades) * 100, 2))
```
2.
使用具有标准化权重的
`convolve()`
计算
BHP 和 VALE
报价的股票收益:
2.
使用具有标准化权重的
`convolve()`
计算
`BHP`
和
`VALE`
报价的股票收益:
```py
bhp = np.loadtxt('BHP.csv', delimiter=',', usecols=(6,), unpack=True)
...
...
@@ -660,7 +660,7 @@ print("Average loss %", round(np.mean(losing_trades) * 100, 2))
![Time for action – smoothing with the hanning() function](img/4154_04_03.jpg)
上图的细线是股票收益,粗线是平滑的结果。 如您所见,这些线交叉了几次。 这些点可能很重要,因为趋势可能在那里更改了 。 或者至少,
BHP 与 VALE
的关系可能已更改。 这些拐点可能经常发生,因此我们可能希望展望未来。
上图的细线是股票收益,粗线是平滑的结果。 如您所见,这些线交叉了几次。 这些点可能很重要,因为趋势可能在那里更改了 。 或者至少,
`BHP`与`VALE`
的关系可能已更改。 这些拐点可能经常发生,因此我们可能希望展望未来。
4.
将平滑步骤的结果拟合为多项式,如下所示:
...
...
docs/numpy-beginners-guide-3e/ch07.md
浏览文件 @
64f5283c
...
...
@@ -26,7 +26,7 @@ NumPy 具有几个数据排序例程:
NumPy
`lexsort()`
函数返回输入数组元素的索引数组,这些索引对应于按词法对数组进行排序。 我们需要给函数一个数组或排序键元组:
1.
让我们回到第 3 章,“熟悉常用功能”。 在该章中,我们使用了
APL
的股价数据。 我们将加载收盘价和(总是复杂的)日期。 实际上,只为日期创建一个转换器函数:
1.
让我们回到第 3 章,“熟悉常用功能”。 在该章中,我们使用了
`AAPL`
的股价数据。 我们将加载收盘价和(总是复杂的)日期。 实际上,只为日期创建一个转换器函数:
```py
def datestr2num(s):
...
...
@@ -53,7 +53,7 @@ NumPy `lexsort()`函数返回输入数组元素的索引数组,这些索引对
### 刚刚发生了什么?
我们使用 NumPy
`lexsort()`
函数按词法对
AAPL
的收盘价进行分类。 该函数返回与数组排序相对应的索引(请参见
`lex.py`
):
我们使用 NumPy
`lexsort()`
函数按词法对
`AAPL`
的收盘价进行分类。 该函数返回与数组排序相对应的索引(请参见
`lex.py`
):
```
py
from
__future__
import
print_function
...
...
@@ -608,7 +608,7 @@ NumPy `blackman()`函数返回布莱克曼窗口。 唯一参数是输出窗口
## 实战时间 – 使用布莱克曼窗口平滑股票价格
让我们从小型
APL
股价数据文件中平滑收盘价:
让我们从小型
`AAPL`
股价数据文件中平滑收盘价:
1.
将数据加载到 NumPy 数组中。 调用 NumPy
`blackman()`
函数形成一个窗口,然后使用该窗口平滑价格信号:
...
...
@@ -629,13 +629,13 @@ NumPy `blackman()`函数返回布莱克曼窗口。 唯一参数是输出窗口
plt.show()
```
使用布莱克曼窗口平滑的
AAPL
收盘价应如下所示:
使用布莱克曼窗口平滑的
`AAPL`
收盘价应如下所示:
![Time for action – smoothing stock prices with the Blackman window](img/4154_07_03.jpg)
### 刚刚发生了什么?
我们从样本数据文件中绘制了
APL
的收盘价,该价格使用布莱克曼窗口和 NumPy
`blackman()`
函数进行了平滑处理(请参见
`plot_blackman.py`
):
我们从样本数据文件中绘制了
`AAPL`
的收盘价,该价格使用布莱克曼窗口和 NumPy
`blackman()`
函数进行了平滑处理(请参见
`plot_blackman.py`
):
```
py
import
numpy
as
np
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录