Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
data8-textbook-zh
提交
20e98599
D
data8-textbook-zh
项目概览
OpenDocCN
/
data8-textbook-zh
9 个月 前同步成功
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
data8-textbook-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
20e98599
编写于
11月 18, 2017
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ch7.
上级
ac060eed
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
86 addition
and
2 deletion
+86
-2
7.md
7.md
+86
-2
未找到文件。
7.md
浏览文件 @
20e98599
#
# 函数和表格
通过使用 Python 中已有的函数,我们正在建立一个使用的技术清单,用于识别数据集中的规律和主题。 现在我们将探索Python编程语言的核心功能:函数定义。
通过使用 Python 中已有的函数,我们正在建立一个使用的技术清单,用于识别数据集中的规律和主题。 现在我们将探索Python编程语言的核心功能:函数定义。
...
@@ -241,3 +240,88 @@ ages.with_column(
...
@@ -241,3 +240,88 @@ ages.with_column(
### 作为值的函数
### 作为值的函数
我们已经看到,Python 有很多种值。 例如,
`6`
是一个数值,
`"cake"`
是一个文本值,
`Table()`
是一个空表,
`age`
是一个表值(因为我们在上面定义)的名称。
在 Python 中,每个函数(包括
`cut_off_at_100`
)也是一个值。 这有助于再次考虑菜谱。 蛋糕的菜谱是一个真实的东西,不同于蛋糕或配料,你可以给它一个名字,像“阿尼的蛋糕菜谱”。 当我们用
`def`
语句定义
`cut_off_at_100`
时,我们实际上做了两件事情:我们创建了一个函数来截断数字 100,我们给它命名为
`cut_off_at_100`
。
我们可以引用任何函数,通过写下它的名字,而没有实际调用它必需的括号或参数。当我们在上面调用
`apply`
时,我们做了这个。 当我们自己写下一个函数的名字,作为单元格中的最后一行时,Python 会生成一个函数的文本表示,就像打印一个数字或一个字符串值一样。
```
py
cut_off_at_100
<
function
__main__
.
cut_off_at_100
>
```
请注意,我们没有使用引号(它只是一段文本)或
`cut_off_at_100()`
(它是一个函数调用,而且是无效的)。我们只是写下
`cut_off_at_100`
来引用这个函数。
就像我们可以为其他值定义新名称一样,我们可以为函数定义新名称。 例如,假设我们想把我们的函数称为
`cut_off`
,而不是
`cut_off_at_100`
。 我们可以这样写:
```
py
cut_off
=
cut_off_at_100
```
现在
`cut_off`
就是函数名称了。它是
`cut_off_at_100`
的相同函数。所以打印出的值应该相同。
```
py
cut_off
<
function
__main__
.
cut_off_at_100
>
```
让我们看看另一个
`apply`
的应用。
### 示例:预测
数据科学经常用来预测未来。 如果我们试图预测特定个体的结果 - 例如,她将如何回应处理方式,或者他是否会购买产品,那么将预测基于其他类似个体的结果是很自然的。
查尔斯·达尔文(Charles Darwin)的堂兄弗朗西斯·高尔顿(Sir Francis Galton)是使用这个思想来基于数值数据进行预测的先驱。 他研究了物理特征是如何传递下来的。
下面的数据是父母和他们的成年子女的高度测量值,由高尔顿仔细收集。 每行对应一个成年孩子。 变量是家庭的数字代码,父母的高度(以英寸为单位),“父母身高”,这是父母双方身高的加权平均值 [1],家庭中孩子的数量 ,以及孩子的出生次序(第几个),性别和身高。
```
py
# Galton's data on heights of parents and their adult children
galton
=
Table
.
read_table
(
'galton.csv'
)
galton
```
| family | father | mother | midparentHeight | children | childNum | gender | childHeight |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | 78.5 | 67 | 75.43 | 4 | 1 | male | 73.2 |
| 1 | 78.5 | 67 | 75.43 | 4 | 2 | female | 69.2 |
| 1 | 78.5 | 67 | 75.43 | 4 | 3 | female | 69 |
| 1 | 78.5 | 67 | 75.43 | 4 | 4 | female | 69 |
| 2 | 75.5 | 66.5 | 73.66 | 4 | 1 | male | 73.5 |
| 2 | 75.5 | 66.5 | 73.66 | 4 | 2 | male | 72.5 |
| 2 | 75.5 | 66.5 | 73.66 | 4 | 3 | female | 65.5 |
| 2 | 75.5 | 66.5 | 73.66 | 4 | 4 | female | 65.5 |
| 3 | 75 | 64 | 72.06 | 2 | 1 | male | 71 |
| 3 | 75 | 64 | 72.06 | 2 | 2 | female | 68 |
(省略了 924 行)
收集数据的主要原因是,能够预测父母所生的孩子的成年身高,和数据集类似。让我们尝试这样做,用双亲的身高作为我们预测的基础变量。 因此双亲的身高是我们的预测性变量。
表格
`heights`
包含双亲和孩子的身高。 两个变量的散点图显示了正相关,正如我们对这些变量的预期。
```
py
heights
=
galton
.
select
(
3
,
7
).
relabeled
(
0
,
'MidParent'
).
relabeled
(
1
,
'Child'
)
heights
```
| MidParent | Child |
| --- | --- |
| 75.43 | 73.2 |
| 75.43 | 69.2 |
| 75.43 | 69 |
| 75.43 | 69 |
| 73.66 | 73.5 |
| 73.66 | 72.5 |
| 73.66 | 65.5 |
| 73.66 | 65.5 |
| 72.06 | 71 |
| 72.06 | 68 |
(省略了 924 行)
```
py
heights
.
scatter
(
0
)
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录