微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在python django中列出超出范围的索引

如何解决在python django中列出超出范围的索引

我在 django 中使用 python 创建了一个书籍推荐应用程序,所以我试图应用机器学习的 k 均值算法,但是当我运行它时,我在 /log_in/ 列表索引超出范围时出现 IndexError “在最后一行代码中”,这是代码

  # Save session as cookie to login the user
        login(request,user)
      # get request user reviewed books
        user_reviews = BxBookratings.objects.filter(id=request.user.id)
        user_reviews_books_ids = set(map(lambda x: x.isbn,user_reviews))     
     #create matrix
        all_user_names = map(lambda x: x.username,BxUsers.objects.only("username"))
        all_books_ids = set(map(lambda x: x.books_id,BxBooks.objects.only("books_id")))
        num_users = len(list(all_user_names))

        ratings_m = dok_matrix((num_users,max(all_books_ids)+1),dtype=np.float32)
        all_user_names1= list(all_user_names)
       
        for i in all_user_names: # each user corresponds to a row,in the order of all_user_names
    
            user_reviews = BxUsers.objects.filter(username= all_user_names1[i])
            for user_review in user_reviews:
              ratings_m[i,user_review.books_id] = user_review.book_rating
        # Perform kmeans clustering
      #  k = int(num_users / 10) + 2
        k=4
        kmeans = KMeans(n_clusters=k)
        clustering = kmeans.fit(ratings_m.tocsr())
          
        Cluster.objects.all().delete()
        new_clusters = {i: Cluster(name=i) for i in range(k) }
        for cluster in new_clusters.values(): # clusters need to be saved before referring to users
              cluster.save()
        for i,cluster_label in enumerate(clustering.labels_):  
              new_clusters[cluster_label].users.add(BxUsers.objects.get(username=all_user_names1[i]))

谢谢你帮我解决这个问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?