1. 程式人生 > 實用技巧 >機器學習第二天---資料預處理和清洗

機器學習第二天---資料預處理和清洗

1.numpy.genfromtxt用於處理資料矩陣

numpy.genfromtxt(fname, dtype=<type 'float'>, comments='#', delimiter=None, skip_header=0, skip_footer=0, converters=None, missing_values=None, filling_values=None, usecols=None, names=None, excludelist=None, deletechars=None, replace_space='_', autostrip=False, case_sensitive=True, defaultfmt='f%i', unpack=None, usemask=False, loose=True, invalid_raise=True, max_rows=None)[source]¶

  • fname:待處理資料的檔名
  • delimiter:資料處理的分割方式
  • dtype:資料更改的型別
import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
'''對網路請求資料的處理'''

#資料獲取處理操作
data=np.genfromtxt("F:\SOFT DOWNLOAD\\1400OS_Code\\1400OS_01_Codes\data\web_traffic.tsv",delimiter="\t")
print(data.shape)
(743, 2)

其結果表明此資料中包含有743個二維資料點

2.對無效值的處理

  • 對無效值的檢測使用 numpy.isnan()
# coding:utf-8

import numpy as np
import scipy as sp
import matplotlib.pyplot as plt
'''對網路請求資料的處理'''

#資料獲取處理操作
data=np.genfromtxt("F:\SOFT DOWNLOAD\\1400OS_Code\\1400OS_01_Codes\data\web_traffic.tsv",delimiter="\t")
#採用特殊索引將獲取的二維資料進行分割
x=data[:,0]
y=data[:,1]
b=np.sum(np.isnan(x))
a
=np.sum(np.isnan(y)) print(b,a)

其結果為0,8,表明在網頁的瀏覽資料中出現無效值

  • 對無效值的小處理,使用的方法是在邏輯上對陣列取反,使得我們只選擇有效的網頁瀏覽資料
x=x[~np.isnan(y)]
x=y[~np.isnan(y)]