Python возвращающий объект карты - PullRequest
0 голосов
/ 01 мая 2018

Я довольно плохо знаком с python и слежу за книгой «Машинное обучение в Python». В примере у меня есть

min(datMat[:,0])

который должен вернуть

 matrix([[-5.379713]])

Но я получаю

 matrix([[<map object at 0x000002130BF3E240>]], dtype=object)

и когда я включаю это в код

rangeJ = float(max(dataSet[:,j]) - minJ)

Я получаю сообщение об ошибке «Ошибка типа: неподдерживаемые типы операндов для -: 'map' and 'map'".

Это код, который я использую для генерации dataMat

def loadDataSet(fileName):
    dataMat = []
    fr = open(fileName)
    for line in fr.readlines():
       curLine = line.strip().split('\t')
       fltLine = map(float,curLine)
       dataMat.append(fltLine)
   return dataMat

Мне трудно понять это. Любая помощь будет отличной !!

1 Ответ

0 голосов
/ 01 мая 2018

Как и предполагалось в комментарии PM 2Ring, ваша книга использует Python 2, а вы используете Python 3. Функция map возвращает список в Python 2, но в Python 3 она возвращает объект карты, если только Вы явно конвертируете его в список. Вы должны иметь возможность заставить свой код работать, изменив эту строку:

fltLine = map(float,curLine)

Кому:

fltLine = list(map(float,curLine))
...