3.7 IO操作与数据处理

学习目标

  • 目标
    • 知道Numpy文件的读取
  • 应用

3.7.1 问题

大多数数据并不是我们自己构造的,而是存在文件当中,需要我们用工具获取。

但是Numpy其实并不适合用来读取和处理数据,因此我们这里了解相关API,以及Numpy不方便的地方即可。

3.7.2 Numpy读取

  • genfromtxt(fname[, dtype, comments, ...]) Load data from a text file, with missing values handled as specified.

numpy_file

# 读取数据
test = np.genfromtxt("test.csv", delimiter=',')

返回结果:

array([[  nan,   nan,   nan,   nan],
       [  1. , 123. ,   1.4,  23. ],
       [  2. , 110. ,   nan,  18. ],
       [  3. ,   nan,   2.1,  19. ]])

3.7.3 如何处理缺失值

1 什么是缺失值

什么时候numpy中会出现nan:当我们读取本地的文件为float的时候,如果有缺失(或者为None),就会出现nan

2 缺失值处理

那么,在一组数据中单纯的把nan替换为0,合适么?会带来什么样的影响?

比如,全部替换为0后,替换之前的平均值如果大于0,替换之后的均值肯定会变小,所以更一般的方式是把缺失的数值替换为均值(中值)或者是直接删除有缺失值的一行

所以:

  • 如何计算一组数据的中值或者是均值
  • 如何删除有缺失数据的那一行(列)在pandas中介绍
t中存在nan值,如何操作把其中的nan填充为每一列的均值
t = array([[  0.,   1.,   2.,   3.,   4.,   5.],
       [  6.,   7.,  nan,   9.,  10.,  11.],
       [ 12.,  13.,  14.,  nan,  16.,  17.],
       [ 18.,  19.,  20.,  21.,  22.,  23.]])

处理逻辑:

缺失处理逻辑

看了上面的处理过程,非常麻烦,别担心之后我们会介绍强大的Pandas工具进行处理!!