您好,欢迎来到年旅网。
搜索
您的当前位置:首页unsupported operand type(s) for -: ‘map‘ and ‘map

unsupported operand type(s) for -: ‘map‘ and ‘map

来源:年旅网
def loadDataSet(fileName):  # 解析文件,按tab分割字段,得到一个浮点数字类型的矩阵
    dataMat = []              # 文件的最后一个字段是类别标签
    fr = open(fileName)
    for line in fr.readlines():
        curLine = line.strip().split('\t')
        fltLine = map(float, curLine)#将每个元素转成float类型
        dataMat.append(fltLine)
    return dataMat
# 构建聚簇中心,取k个(此例中为4)随机质心
def randCent(dataSet, k):
    n = np.shape(dataSet)[1]#输出列数  此处应改为0
    centroids = np.mat(np.zeros((k,n)))   # 每个质心有n个坐标值,总共要k个质心
    for j in range(n):
        minJ = min(dataSet[:,j])
        maxJ = max(dataSet[:,j])
        rangeJ = float(maxJ - minJ)
        centroids[:,j] = minJ + rangeJ * random.rand(k, 1)
    return centroids

报错:

TypeError: unsupported operand type(s) for -: 'map' and 'map'

rangeJ = float(maxJ - minJ)为两个map型数据相减
解决:
改成

#python2中map(float,curline)返回list,python3中返回map
fltLine = list(map(float, curLine))#将每个元素转成float类型

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务