bug9-TypeError: ‘generator‘ object is not subscriptable

本文介绍了如何解决Python中遇到的'TypeError: 'generator' object is not subscriptable'错误。通过检查报错行的拼写和括号使用,以及确认涉及的变量(如label和x)定义是否正确,问题通常可以得到解决。添加括号是修正该错误的一种常见方法。
摘要由CSDN通过智能技术生成

一般在报错行处,查看是否有拼写错误,或者括号错误
或者报错行用到的数据定义是否有错误

例子
#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
@author: liujie
@software: PyCharm
@file: natives.py
@time: 2020/10/21 17:18
"""
import time
import numpy as np
# 显示进度条
from tqdm import tqdm


def loaddata(filename):
    """
    加载数据集
    :param filename: 文件路径
    :return: 数据与标签
    """
    # 存放数据及标签
    dataArr = []
    labelArr = []
    # 读取文件
    fr = open(filename)
    # 遍历读取文件每一行
    for line in tqdm(fr.readlines()):
        # 获取当前行,并按','进行切割,返回列表
        curLine = line.strip().split(',')
        # 获取数据
        # 将数据进行了二值化处理,大于128的转换成1,小于的转换成0,方便后续计算
        dataArr.append(int(int(num) > 128) for num in curLine[1:])
        # 获取标签
        labelArr.append(int(curLine[0]))
    # 返回数据集与标签
    return dataArr, labelArr


def NaivesBayes(Py, Px_y, x):
    """
    通过贝叶斯进行概率估计
    :param Py: 先验概率分布
    :param Px_y: 条件概率分布
    :param x: 要估计的样本
    :return: 返回所有label的估计概率
    """

    # 设置特征数目
    featureNum = 784
    # 设置类别数目
    classNum = 10
    # 建立存放所有标记的概率的数组
    P = [0] * classNum

    # 对于每一个类别,单独估计其概率
    for i in range(classNum):
        # 初始化sum为0,sum为求和项。
        # 在训练过程中对概率进行了log处理,所以这里原先应当是连乘所有概率,最后比较哪个概率最大
        # 但是当使用log处理时,连乘变成了累加,所以使用sum
        sum 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值