Я хочу построить модель данных, используя этот код:питона: TypeError: неподдерживаемый тип операнда (ов) для +: «numpy.ndarray» и «ул»
def modeldata(filename, ratingMatrix):
result={}
itemmatrix = matrixconvert(ratingMatrix)
current = 0
total = len(itemmatrix)
for item in itemmatrix:
current+=1
if current%100--0: print ("%d/%d" % (current,total))
result[item] = neighbor
#print result
with open(filename+".csv", "wb") as f:
pickle.dump(result, f)
переменного имя файла является результатом данных от процесс кластеризации, который содержит идентификатор пользователя, ItemID и рейтинг, `то ratingMatrix это словарь, который содержит ключ (пользователь), подраздел (пункт) и рейтинг
10 dict 1 {'255': 3.0}
. Сосед содержит данные о сходстве.
0 tuple 2 (1.0, '9790')
Я хочу построить модель данных, используя эти вещи выше, я запустить функцию с этим кодом
modeldata(filename, ratingMatrix)
, но я получаю эту ошибку:
1/306
.
.
304/306
305/306
306/306
Traceback (most recent call last):
File "<ipython-input-29-5af8931a8f1e>", line 1, in <module>
modeldata(filename, ratingMatrix)
File "<ipython-input-28-220883448026>", line 14, in modeldata
with open(filename+".txt", "wb") as f:
TypeError: unsupported operand type(s) for +: 'numpy.ndarray' and 'str'
У Вас есть любая идея, что не так с этим кодом? где ошибка, и как я могу заставить ее работать?
Спасибо за вашу помощь ....
Могу ли я увидеть, как объявляется ваша переменная имени файла? Это не похоже на конкатенацию строк на вашей 'открытой' строке –
жаль, что это csv, я обновил код. Но я все еще получаю эту ошибку ... :( – estu
@etsu well 'filename' хочет быть строкой, но выглядит как ее массив numpy? И есть ли какая-то конкретная причина, по которой вы открываете файл в двоичном режиме? –