python数据预处理练习

#ecoding=utf-8
import math
import re
import csv

def fileREAD(fileURL,access):
    "传入文件路径,返回存储文件内容的二维列表"
    localArray = []  # 创建一个列表用于存储文件内容
    csvfile = file(fileURL, access)
    reader = csv.reader(csvfile)
    for line in reader:
        localArray.append(line)
    csvfile.close()
    return localArray

def getLine(inList,Line):
    "获得某一行数据"
    return inList[Line]

def getRow(inList,Row):
    "获得某一列数据"
    listReturn = []
    for i in inList:
        listReturn.append(i[Row])
    return listReturn

def setLine(inList,childList,Line):
    "设置矩阵某一行数据"
    inList[Line] = childList

def setRow(inList,chikdList,Row):
    "设置矩阵的某一列"
    i = 0
    for i in range(0,len(chikdList)):
        inList[i][Row] = chikdList[i]

def addLine(inList,childLine):
    "给数据矩阵添加一行"
    inList.append(childLine)

def addRow(inList,childRow):
    "给数据矩阵添加一列"
    j = 0
    for i in inList:
        i.append(childRow[j])
        j = j+1

def getAVG(inList):
    "求数值属性的均值"
    sumOfList = 0
    lengOfList = 0
    for i in inList:
        if re.match(r'[0-9]+',i):
            sumOfList = sumOfList + float(i)
            lengOfList = lengOfList + 1
        else:
            continue
    if lengOfList != 0 :
        return sumOfList/lengOfList
    else:
        return "当前特征无平均值"

def getAVE(inList):
    "求数值属性的方差"
    #先求平均数
    sumOfList = 0
    lengOfList = 0
    su = 0
    for i in inList:
        if re.match(r'[0-9]+', i):
            sumOfList = sumOfList + float(i)
            lengOfList = lengOfList + 1
        else:
            continue
    if lengOfList != 0:
        avg = sumOfList / lengOfList
        for j in inList:
            if re.match(r'[0-9]+',j):
                su += (float(j) - avg) ** 2
            else:
                continue
        return math.sqrt(su)
    else:
        return "当前特征无方差"

def average(seq, total=0.0):
  num = 0
  for item in s
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值