> For the complete documentation index, see [llms.txt](https://minghuiwu.gitbook.io/tfbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://minghuiwu.gitbook.io/tfbook/di-wu-zhang-duo-yuan-xian-xing-hui-gui-bo-shi-dun-fang-jia-yu-ce-wen-ti-tesnsorflow-shi-zhan/di-wu-zhang-duo-yuan-xian-xing-hui-gui-bo-shi-dun-fang-jia-yu-ce-wen-ti-tesnsorflow-shi-zhan/5.3-shu-ju-du-qu.md).

# 5.4 数据读取

#### 5.4.1 导入相关库

首先还是先导入后面要使用到的Python包

```python
%matplotlib notebook

import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.utils import shuffle
```

#### 5.4.2 通过Pandas导入数据

我们要读取的波士顿房价数据是常规大小的数据，想快速此类数据文件时，通过创建读缓存区和其他的机制可能会造成额外的开销，此时建议采用Pandas库来处理。

Pandas官网（[http://pandas.pydata.org](http://pandas.pydata.org/) )这样介绍Pandas：

“Pandas是一款开源的、基于BSD协议的Python库，能够提供高性能、易用的数据结构和数据分析工具。”他具有以下特点：①能够从CSV文件、文本文件、MS Excel、SQL数据库，甚至是用于科学用途的HDF5格式②CSV文件加载能够自动识别列头，支持列的直接寻址③数据结构自动转换为Numpy的多维数组。

```python
# 读取数据文件

df = pd.read_csv("data/boston.csv", header=0)

#显示数据摘要描述信息

print (df.describe())
```

Jupyter Notebook的交互界面会出现如图5-8所示的摘要描述信息。

![图 5-8 显示数据摘要](https://80031148-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LYtTdBhaX9EsGjMVkHV%2F-LcBRx4rsn_zpO5PRLjX%2F-LcBTj_pDggXqrCBHYHE%2F%E5%9B%BE%E7%89%871.png?alt=media\&token=166709d7-013f-4e70-a782-3e10a6a747cf)

#### 5.4.3 载入本示例所需数据 <a href="#zai-ru-ben-shi-li-suo-xu-shu-ju" id="zai-ru-ben-shi-li-suo-xu-shu-ju"></a>

```python
# 获取df的值
df = df.values
print(df)

# 把 df 转换为 np 的数组格式
df = np.array(df)
print(df)
```

#### 5.4.4 特征数据归一化 <a href="#te-zheng-shu-ju-gui-yi-hua" id="te-zheng-shu-ju-gui-yi-hua"></a>

```python
# 对特征数据 【0到11】列 做（0-1）归一化
for i in range(12):
    df[:,i]=df[:,i]/(df[:,i].max()-df[:,i].min())
    
# x_data 为 归一化后的前12列特征数据
x_data = df[:,:12] 

# y_data 为最后1列标签数据
y_data = df[:,12]
```

如图5-1所示，不同的评价指标往往具有不同的量纲（例如：对于评价房价来说量纲指：面积、房价数、楼层等；对于预测某个人患病率来说量纲指：身高、体重等。）和量纲单位（例如：面积单位：平方米、平方厘米等；身高：米、厘米等），这样的情况会影响到数据分析的结果，为了消除指标之间量纲的影响，需要进行数据标准化处理，已解决数据指标之间的可比性。原始数据经过数据标准化处理后，各指标处于同一数量级，适合进行综合对比评价。

进行数据归一化后可以加快梯度下降求解最优解的速度，也可以提高精度。
