精华内容
下载资源
问答
  • 01数据列缺失的4种处理方法数据缺失分为两种:一种是行记录的缺失,这种情况又称数据记录丢失;另一种是数据的缺失,即由于各种原因导致的数据记录中某些列的空缺。不同的...

    640?wx_fmt=jpeg


    01 

    数据列缺失的4种处理方法


    数据缺失分为两种:一种是行记录的缺失,这种情况又称数据记录丢失;另一种是数据列值的缺失,即由于各种原因导致的数据记录中某些列的值空缺。

    不同的数据存储和环境中对于缺失值的表示结果也不同,例如,数据库中是Null,Python返回对象是None,Pandas或Numpy中是NaN。

    在极少数情况下,部分缺失值也会使用空字符串来代替,但空字符串绝对不同于缺失值。从对象的实体来看,空字符串是有实体的,实体为字符串类型;而缺失值其实是没有实体的,即没有数据类型。

    丢失的数据记录通常无法找回,这里重点讨论数据列类型缺失值的处理思路。通常有4种思路。

    1. 丢弃

    这种方法简单明了,直接删除带有缺失值的行记录(整行删除)或者列字段(整列删除),减少缺失数据记录对总体数据的影响。但丢弃意味着会消减数据特征,以下任何一种场景都不宜采用该方法。

    • 数据集总体中存在大量的数据记录不完整情况且比例较大,例如超过10%,删除这些带有缺失值的记录意味着会损失过多有用信息。

    • 带有缺失值的数据记录大量存在着明显的数据分布规律或特征,例如带有缺失值的数据记录的目标标签(即分类中的Label变量)主要集中于某一类或几类,如果删除这些数据记录将使对应分类的数据样本丢失大量特征信息,导致模型过拟合或分类不准确。

    2. 补全

    相对丢弃而言,补全是更加常用的缺失值处理方式。通过一定的方法将缺失的数据补上,从而形成完整的数据记录,对于后续的数据处理、分析和建模至关重要。常用的补全方法如下。

    • 统计法:对于数值型的数据,使用均值、加权均值、中位数等方法补足;对于分类型数据,使用类别众数最多的值补足。

    • 模型法:更多时候我们会基于已有的其他字段,将缺失字段作为目标变量进行预测,从而得到最为可能的补全值。如果带有缺失值的列是数值变量,采用回归模型补全;如果是分类变量,则采用分类模型补全。

    • 专家补全:对于少量且具有重要意义的数据记录,专家补足也是非常重要的一种途径。

    • 其他方法:例如随机法、特殊值法、多重填补等。

    640?wx_fmt=jpeg

    3. 真值转换法

    在某些情况下,我们可能无法得知缺失值的分布规律,并且无法对于缺失值采用上述任何一种补全方法做处理;或者我们认为数据缺失也是一种规律,不应该轻易对缺失值随意处理,那么还有一种缺失值处理思路—真值转换。

    该思路的根本观点是,我们承认缺失值的存在,并且把数据缺失也作为数据分布规律的一部分,将变量的实际值和缺失值都作为输入维度参与后续数据处理和模型计算中。但是变量的实际值可以作为变量值参与模型计算,而缺失值通常无法参与运算,因此需要对缺失值进行真值转换。

    以用户性别字段为例,很多数据库集都无法对会员的性别进行补足,但又舍不得将其丢弃掉,那么我们将选择将其中的值,包括男、女、未知从一个变量的多个值分布状态转换为多个变量的真值分布状态。

    • 转换前:性别(值域:男、女、未知)。

    • 转换后:性别_男(值域1或0)、性别_女(值域1或0)、性别_未知(值域1或0)。

    然后将这3列新的字段作为输入维度替换原来的1个字段参与后续模型计算。

    4. 不处理

    在数据预处理阶段,对于具有缺失值的数据记录不做任何处理,也是一种思路。这种思路主要看后期的数据分析和建模应用,很多模型对于缺失值有容忍度或灵活的处理方法,因此在预处理阶段可以不做处理。

    常见的能够自动处理缺失值的模型包括:KNN、决策树和随机森林、神经网络和朴素贝叶斯、DBSCAN(基于密度的带有噪声的空间聚类)等。这些模型对于缺失值的处理思路是:

    • 忽略,缺失值不参与距离计算,例如KNN。

    • 将缺失值作为分布的一种状态,并参与到建模过程,例如各种决策树及其变体。

    • 不基于距离做计算,因此基于值的距离做计算本身的影响就消除了,例如DBSCAN。

    在数据建模前的数据归约阶段,有一种归约的思路是降维,降维中有一种直接选择特征的方法。假如我们通过一定方法确定带有缺失值(无论缺少字段的值缺失数量有多少)的字段对于模型的影响非常小,那么我们根本就不需要对缺失值进行处理。

    因此,后期建模时的字段或特征的重要性判断也是决定是否处理字段缺失值的重要参考因素之一。

    对于缺失值的处理思路是先通过一定方法找到缺失值,接着分析缺失值在整体样本中的分布占比,以及缺失值是否具有显著的无规律分布特征,然后考虑后续要使用的模型中是否能满足缺失值的自动处理,最后决定采用哪种缺失值处理方法。

    在选择处理方法时,注意投入的时间、精力和产出价值,毕竟,处理缺失值只是整个数据工作的冰山一角而已。

    在数据采集时,可在采集端针对各个字段设置一个默认值。以MySQL为例,在设计数据库表时,可通过default指定每个字段的默认值,该值必须是常数。

    在这种情况下,假如原本数据采集时没有采集到数据,字段的值应该为Null,虽然由于在建立库表时设置了默认值会导致“缺失值”看起来非常正常,但本质上还是缺失的。对于这类数据需要尤其注意。

    640?wx_fmt=jpeg


    02 

    不要轻易抛弃异常数据


    异常数据是数据分布的常态,处于特定分布区域或范围之外的数据通常会被定义为异常或“噪音”。产生数据“噪音”的原因很多,例如业务运营操作、数据采集问题、数据同步问题等。

    对异常数据进行处理前,需要先辨别出到底哪些是真正的数据异常。从数据异常的状态看分为两种:

    • 一种是“伪异常”,这些异常是由于业务特定运营动作产生的,其实是正常反映业务状态,而不是数据本身的异常规律。

    • 一种是“真异常”,这些异常并不是由于特定的业务动作引起的,而是客观地反映了数据本身分布异常的分布个案。

    大多数数据挖掘或数据工作中,异常值都会在数据的预处理过程中被认为是噪音而剔除,以避免其对总体数据评估和分析挖掘的影响。但在以下几种情况下,我们无须对异常值做抛弃处理。

    1. 异常值正常反映了业务运营结果

    该场景是由业务部门的特定动作导致的数据分布异常,如果抛弃异常值将导致无法正确反馈业务结果。

    例如:公司的A商品正常情况下日销量为1000台左右。由于昨日举行优惠促销活动导致总销量达到10000台,由于后端库存备货不足导致今日销量又下降到100台。在这种情况下,10000台和100台都正确地反映了业务运营的结果,而非数据异常案例。

    2. 异常检测模型

    异常检测模型是针对整体样本中的异常数据进行分析和挖掘,以便找到其中的异常个案和规律,这种数据应用围绕异常值展开,因此异常值不能做抛弃处理。

    异常检测模型常用于客户异常识别、信用卡欺诈、贷款审批识别、药物变异识别、恶劣气象预测、网络入侵检测、流量作弊检测等。在这种情况下,异常数据本身是目标数据,如果被处理掉将损失关键信息。

    3. 包容异常值的数据建模

    如果数据算法和模型对异常值不敏感,那么即使不处理异常值也不会对模型本身造成负面影响。例如在决策树中,异常值本身就可以作为一种分裂节点。

    提示:除了抛弃和保留,还有一种思路可对异常值进行处理,例如使用其他统计量、预测量进行替换。但这种方法不推荐使用,原因是这会将其中的关键分布特征消除,从而改变原始数据集的分布规律。

    640?wx_fmt=jpeg


    03 

    数据重复就需要去重吗


    数据集中的重复值包括以下两种情况:

    • 数据值完全相同的多条数据记录。这是最常见的数据重复情况。

    • 数据主体相同但匹配到的唯一属性值不同。这种情况多见于数据仓库中的变化维度表,同一个事实表的主体会匹配同一个属性的多个值。

    去重是重复值处理的主要方法,主要目的是保留能显示特征的唯一数据记录。但当遇到以下几种情况时,请慎重(不建议)执行数据去重。

    1. 重复的记录用于分析演变规律

    以变化维度表为例。例如在商品类别的维度表中,每个商品对应的同1个类别的值应该是唯一的,例如苹果iPhone7属于个人电子消费品,这样才能将所有商品分配到唯一类别属性值中。但当所有商品类别的值重构或升级时(大多数情况下随着公司的发展都会这么做),原有的商品可能被分配了类别中的不同值。如下表所示展示了这种变化。

    640?wx_fmt=png

    此时,我们在数据中使用Full join做跨重构时间点的类别匹配时,会发现苹果iPhone7会同时匹配到个人电子消费品和手机数码2条记录。对于这种情况,需要根据具体业务需求处理。

    • 如果跟业务沟通,两条数据需要做整合,那么需要确定一个整合字段用来涵盖2条记录。其实就是将2条数据再次映射到一个类别主体中。

    • 如果跟业务沟通,需要同时保存两条数据,那么此时不能做任何处理。后续的具体处理根据建模需求而定。

    • 相关知识点:变化维度表

    变化维度表是数据仓库中的概念。维度表类似于匹配表,用来存储静态的维度、属性等数据,而这些数据一般都不会改变。但是变与不变是一个相对的概念,随着企业的不断发展,很多时候维度也会随着发生变化。因此在某个时间内的维度是不变的,而从整体来看维度也是变化的。

    对于维度的变化,有3种方式进行处理:

    • 直接覆盖原有值。这种情况下每个唯一ID就只对应一个属性值,这样做虽然简单粗暴也容易实现,但是无法保留历史信息。

    • 添加新的维度行。此时同一个ID会得到两条匹配记录。

    • 增加新的属性列。此时不会新增数据行记录,只是在原有的记录中新增一列用于标记不同时期的值。

    具体到企业内使用哪种方式,通常由数据库管理员根据实际情况来决定。

    注意:真正的变化维度表或维度表不会以中文做主键,通常都会使用数字或字符串类作为唯一关联ID,本节的示例仅做说明之用。

    2. 重复的记录用于样本不均衡处理

    在开展分类数据建模工作时,样本不均衡是影响分类模型效果的关键因素之一。解决分类方法的一种方法是对少数样本类别做简单过采样,通过随机过采样,采取简单复制样本的策略来增加少数类样本。

    经过这种处理方式后,也会在数据记录中产生相同记录的多条数据。此时,我们不能对其中的重复值执行去重操作。

    3. 重复的记录用于检测业务规则问题

    对于以分析应用为主的数据集而言,存在重复记录不会直接影响实际运营,毕竟数据集主要是用来做分析的。

    但对于事务型的数据而言,重复数据可能意味着重大运营规则问题,尤其当这些重复值出现在与企业经营中与金钱相关的业务场景时,例如:重复的订单、重复的充值、重复的预约项、重复的出库申请等。

    这些重复的数据记录通常是由于数据采集、存储、验证和审核机制的不完善等问题导致的,会直接反映到前台生产和运营系统。以重复订单为例:

    • 假如前台的提交订单功能不做唯一性约束,那么在一次订单中重复点击提交订单按钮,就会触发多次重复提交订单的申请记录,如果该操作审批通过后,会联动带动运营后端的商品分拣、出库、送货,如果用户接收重复商品则会导致重大损失;

    • 如果用户退货则会增加反向订单,并影响物流、配送和仓储相关的各个运营环节,导致运营资源无端消耗、商品损耗增加、仓储物流成本增加等问题。

    因此,这些问题必须在前期数据采集和存储时就通过一定机制解决和避免。如果确实产生了此类问题,那么数据工作者或运营工作者可以基于这些重复值来发现规则漏洞,并配合相关部门,最大限度地降低由此而带来的运营风险。

    本文摘编自《Python数据分析与数据化运营》(第2版),经出版方授权发布。

    640?wx_fmt=jpeg

    《Python数据分析与数据化运营》(第2版)

    点击封面或者扫码二维码查看详情

    640?wx_fmt=png


    关于作者:

    宋天龙,大数据技术专家,触脉咨询合伙人兼副总裁,前Webtrekk中国区技术和咨询负责人(Webtrekk,德国的在线数据分析服务提供商)。擅长数据挖掘、建模、分析与运营,精通端到端数据价值场景设计、业务需求转换、数据结构梳理、数据建模与学习以及数据工程交付。

    推荐理由:

    (1)作者是有10余年数据分析与数据化运营经验的资深大数据专家,在国内外企业都工作过,经验丰富。

    (2)作者善于总结和写作,乐于分享,撰写数据分析类 畅销书3部。

    (3)本书与同类书大的不同在于,并不只有纯粹的关于数据分析技术和工具的讲解,而且还与数据使用场景深度结合,在业务上真正可指导落地。

    (4)新版除了Python更新到了新版外,具体内容上做了大幅度的补充和优化,整体篇幅超过30%,详见前言。

    (5)本书作者提供微信、邮箱等,可通过实时和离线两种方式及时为读者在线传道、受业、解惑。

    扫码一键购买

    640?wx_fmt=png


    640?wx_fmt=gif

    码书商店是CSDN专为我们的用户建立的一个商店,这里提供大量的技术书籍,除了书籍我们也提供生活类的相关产品,如耳机、键盘等,或者你们如果有需求也可以联系码书商店的客服或者在公众号下留言你们需要的产品,我们尽量满足大家需求哦。

    作为码书商店的运营人员,诚邀你们进入我们的“CSDN码书福利群”,群里会不定时的给大家赠书书籍、优惠券等,有书籍推荐或者物流方面信息也可群里咨询~目前群已满100人,需要加群的请扫下方二维码添加微信,拉你入群哦~

    640?wx_fmt=png


    640?wx_fmt=gif

    展开全文
  • 查询LSCJMB表中F_CJZY对应值重复数据: SELECT F_CJZY,COUNT(F_CJZY) FROM LSCJMB GROUP BY F_CJZY HAVING COUNT( F_CJZY )>1 查出了重复的列及重复行数: 删除全部涉及重复数据: delete from ...

    查询LSCJMB表中F_CJZY对应列值重复的数据:

    SELECT F_CJZY,COUNT(F_CJZY) FROM LSCJMB GROUP BY F_CJZY HAVING COUNT( F_CJZY )>1

    查出了重复的列及重复行数:

    删除全部涉及重复的数据:
    delete from LSCJMB where F_CJZY in(SELECT F_CJZY,COUNT(F_CJZY) FROM LSCJMB GROUP BY F_CJZY HAVING COUNT( F_CJZY )>1);

    需要保存某一列,然后删除剩余的列的话,用如下sql,删除了输了F_GUID最大列以外的所有数据。可以当作是 ID 最大的列。
    delete from LSCJMB where F_GUID not in(select t.F_GUID1 from (select max (a.F_GUID) F_GUID1 from LSCJMB a group by a.F_CJZY)as t );

    展开全文
  • 大数据的预处理,人工删除很麻烦 Python恰好能够解决 注释很详细在这不一一解释了 ###################################### ##### 读写excel(xls\xlsx)文件 import pandas as pd ...print('数据量行*列'...

    pandas几个函数的使用,大数据的预处理(删除重复值和空值),人工删除很麻烦
    Python恰好能够解决
    注释很详细在这不一一解释了

    ######################################
    ##### 读写excel(xls\xlsx)文件
    import pandas as pd
    import numpy as np
    df_excel = pd.read_excel('data3.xlsx')
    print('数据量行*列',df_excel.shape)
    # # df_excel.to_excel('df_excel.xlsx',header=None)#生成文件保存,无表头
    print('数据集中存在重复观测的数量:\n',np.sum(df_excel.duplicated())) #F为不存在,T为存在,用sum显示重复的数量
    print('删除行重复后的数据\n',df_excel.drop_duplicates(subset=None,keep='first',inplace=None))#excel文件中设定第一和第二行为重复行,结果删除了第二行保留第一行
                                ###df_excel.drop_duplicates(subset=['A','B'],keep='first',inplace=True)
                                #### 代码中subset对应的值是列名,表示只考虑这两列,将这两列对应值相同的行进行去重。默认值为subset=None表示考虑所有列。
                                #####keep='first'表示保留第一次出现的重复行,是默认值。keep另外两个取值为"last"和False,分别表示保留最后一次出现的重复行和去除所有重复行。
                                #####inplace=True表示直接在原来的DataFrame上删除重复项,而默认值False表示生成一个副本
    
    print('数据集列中是否存在缺失值:\n',df_excel.isnull().any())              #F为不存在,T为存在
    print('每一行的缺失值个数:',df_excel.isnull().sum(axis=1))
    print('每一列的缺失值个数:',df_excel.isnull().sum(axis=0))
    
                        ####### df.isnull().sum(axis=0)每一列的缺失值个数
                        #####df.isnull().any()则会判断哪些”列”存在缺失值
    df=df_excel.dropna()
    print(df_excel.dropna(thresh=5))
                                    # #axis=0: 删除包含缺失值(NaN)的行
                                    # #axis=1: 删除包含缺失值(NaN)的列
                                    # # how=‘any’ :要有缺失值(NaN)出现删除
                                    # # how=‘all’: 所有的值都缺失(NaN)才删除
                                    # 还有一个thresh参数
                                    # thresh=n,保留至少有 n 个非 NaN 数的行
    
    ######drop用法
    print(df_excel.drop(['edu'],axis=1))#按照列删除edu这一列
    print(df_excel.drop([0],axis=0))#按照行删除0这一行
    
    展开全文
  • 计算机组成原理期末复习【超实用】

    万次阅读 多人点赞 2019-08-14 00:07:42
    P405 首先将用户程序的首地址送到PC,然后进入 取指阶段:①将取指周期微程序首地址M→CMAR ②取微指令:将对应控存M地址单元中的第一条微指令读到控存数据寄存器中,记为CM(CMAR)→CMDR ③产生微操作指令:第一条微...

    计算机组成原理(第二版)唐朔飞  编著(课本有些地方还不错,可以下载电子版看看)

    b站2小时讲解链接 https://www.bilibili.com/video/BV1x4411q7Fz/初次录讲解视频,各种差错和画音不同步请各位谅解,我录到后面都想放弃了,只当是做做博文的推广,想着知识点都写得挺明白了,我个人看博文比看视频效率高,实在没想到挺多人宁愿看视频。我后台还看到有些人说听不懂,如果全都听不懂的话,我建议你们另寻高人指点。我和你们一样是学生,我也有很多没搞明白为什么的,只知道大概怎么算、怎么画。还有,大家别再问我要word文档了,我发到CSDN上的底稿全都删了,可能在你们看来是混课设和考试的救命稻草,在我看来只是一堆再无用处的垃圾。

    五道解答题30‘=9’(9个知识点)+6’+6’+4’+5’ 橙色题号的是当年我遇到的考试题,后面计算题记不清楚确切考了哪些,但掌握了做题技巧就问题不大了。

    我依据老师的考题范围手动整理,有什么问题or想添加的知识点请在评论下方留言!实时更新,助诸位共进步!

    一、解答题

    1. 影响流水线性能的因素主要有哪几种?请简要加以说明。P348

        结构相关:是当多条指令进入流水线后,硬件资源满足不了指令重叠执行的要求时产生的。不同指令争用同一功能部件产生资源冲突。

        数据相关:是指令在流水线中重叠执行时,当后继指令需要用到前面指令的执行结果时发生的。可能改变对操作数的读写访问顺序。

        控制相关:是当流水线遇到分支指令和其它改变PC值的指令时引起的。

    2. 为了保证DRAM的存储信息不遭破坏,必须在电荷漏掉前就进行充电,称为刷新。常见的刷新方式有哪三种,试分析它们间的区别。P86

        集中刷新:是在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。

        分散刷新:是指对每行存储单元的刷新分散到每个存储周期内完成。

        异步刷新:是前两种方式的结合,既可缩短“死时间”,又充分利用最大刷新间隔2ms的特点。

    3. 说明计算机九大寻址方式及有效地址EA计算方法。P311

        立即寻址:无需寻址        隐含寻址:无需寻址       直接寻址:EA=A        间接寻址:EA=(A)         相对寻址:EA=(PC)+A

        基址寻址:EA=(BR)+A    变址寻址:EA=(IX)+A    寄存器寻址:EA=Rj    寄存器间接寻址:EA=(Rj)

    4. 按传输信息的不同,系统总线可分为哪几类?并加以简单描述。P43

        数据总线:用来传输各种功能部件间的数据信息,是双向传输总线,其位数与机器字长、存储字长有关,一般为8/16/32位。

        地址总线:主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址。

        控制总线:用来发送各种控制信号的传输线,通常对任意控制线而言,它的传输是单向的。

    5. 试说明具有Cache-主存结构的计算机,CPU在访问存储器时的工作流程。P110

        CPU欲读取主存某字时,有两种可能:一种是所需要的字已经在缓存中,即可直接访问Cache;另一种是所需的字不在Cache内,此时需将该字所在的主存整个字块一次调入Cache中(Cache与主存之间是字块传输)。当Cache未满时,主存块可被调入缓存块中,称该主存块与缓存块建立了联系。当Cache已满时,无法接收来自主存块的信息,就由Cache内的替换机构按一定的算法从Cache内移除哪块返回主存,并把新的主存块调入Cache中。

    6. 在写操作时,要考虑Cache和主存的数据一致性的问题,试说明写回法和写直达法的区别。P113

        写回法(拷回法):写操作时只把数据写入Cache而不写入主存(减少了主存的写操作次数),写操作时间=访Cache时间。但当(读操作且Cache已满时)Cache数据被替换出来时才写回主存,增加了Cache复杂性。

         写直达法(存直达法):写操作时数据既写入Cache又写入主存,写操作时间=访存时间,它能随时保证主存与Cache的数据始终一致,但增加了访存次数。(读操作时不涉及对主存的写操作,更新策划较容易实现。)

    7. 说明补码定点加减运算,判断溢出的两种方法。P239-240

         一位符号位判断溢出:参加操作的两个数(减法时即为被减数和“求补”后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出。

         两位符号位判断溢出:若结果双符号位相同,则未溢出;若双符号位不同,则溢出。最高符号位为真结果符号。

    8. 说明Cache-主存的地址映像有哪三种方式,说明他们的基本映像原理。P117

        直接映射:将主存空间按Cache的尺寸分区,每区内相同的块号映像到Cache中相同的块位置。优:实现简单;缺:不够灵活

        全相连映射:主存中的每一个字块可映射到Cache任何一个字块位置上,当访问一个块中的数据时,块地址要与Cache块表中的所有地址标记进行比较以确认是否命中。

        组相连映射:是直接映射和全相连映射的一种折中方案,这种方案将存储空间分为若干组,各组间是直接映射,而组内各块间是全相连映射。

    9. 试说明指令周期,机器周期,时钟周期之间的关系。P386

         一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期(节拍),每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数也可以不等。

    10. 试说明单译码方式(线选法)和双译码方式(重合法)的区别。P75

          存储芯片内的地址译码器有两种方式:一种是线选法,适用于地址线较少的芯片。地址信号只需经过一个方向的译码器就可以选中某一存储单元的所有位,结构较简单。

          另一种是重合法,适用于地址线较多的芯片。地址线分为两组,分别经行地址译码器和列地址译码器,通过两者“与”选中存储单元才能进行读/写。

    11. 分别说明一下名词MAR,MDR,CU,IR,PC的中文名称及该器件的主要功能。P14-16

         MAR是存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数对应存储单元的个数。

         MDR是存储器数据寄存器,用来存放从存储体某单元取出or存入的代码,其位数与存储字长相等。

    如4K × 8位的存储芯片,有log2(4K)=12条地址线,8条数据线

         CU是控制单元,用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象。

         IR是指令寄存器,用来存放当前指令,IR的内容来自MDR。

         PC是程序计数器,用来存放当前欲执行指令的地址,它与主存的MAR间有一条直接通道且具有自动加1功能,即可自动形成下一条指令的地址。

    12. 计算机的五大基本组成是什么?P9

          运算器:用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器里。

          存储器:用来存放数据和程序。

          控制器:用来控制、指挥程序和数据的输入、运行以及处理运算的结果。

          输入设备:用来将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等。

          输出设备:可将机器运算结果转换为人们熟悉的信息形式,如打印机输出等。

    13. 设某计算机采用微程序控制器,试说明微程序控制器的基本工作原理(即CPU执行指令时的操作过程)。P405

          首先将用户程序的首地址送到PC,然后进入

          取指阶段:①将取指周期微程序首地址M→CMAR

                            ②取微指令:将对应控存M地址单元中的第一条微指令读到控存数据寄存器中,记为CM(CMAR)→CMDR

                            ③产生微操作指令:第一条微指令的操作控制字段中为“1”的各位发出控制信号,如PC→MAR、I→R,命令主存    接收程序首地址并进行读操作。

                            ④形成下一条微指令的地址:此微指令的顺序控制字段指出了下一条微指令的地址为M+1,将M+1送至CMAR,即Ad(CMDR)→CMAR

                            ⑤取下一条微指令:将对应控存M+1地址单元中的第二条微指令读到CMDR中,即CM(CMAR)→CMDR

                            ⑥产生微操作指令:由第二条微指令的操作控制字段中对应“1”的各位发出控制信号,如M(MAR)→MDR使对应主存2000H地址单元中的第一条机器指令从主存中读出,送至MDR中。

                            ⑦形成下一条微指令地址:将第二条微指令下地址字段指出的地址M+2送至CMAR,即Ad(CMDR)→CMAR

          执行阶段:①取数指令微程序首地址的形成:当取数指令存入IR后,其操作码OP(IR)直接送到微地址形成部件,该部件的输出即为取数指令微程序的首地址P,且将P送至CMAR,记作OP(IR)→微地址形成部件→CMAR

                            ②取微指令:将对应控存P地址单元中的微指令读到CMDR中,记为CM(CMAR)→CMDR

                            ③产生为操作命令:由微指令操作控制字段中对应“1”的各位发出控制信号,如Ad(IR)→MAR、I→R,命令主存读操作数。

                            ④形成下一条微指令地址:将此条微指令下地址字段指出的P+1送至CMAR,即Ad(CMDR)→CMAR

    14. 试说明汉明码的校验原理(即如何生成汉明码,以及汉明码的检验原理),默认偶校验。P110

         汉明码的生成步骤:①确定校验位的位数 2^k ≥ n + k +1

                                         ②确定校验位的位置

                                         ③分组

                                         ④生成校验位的值

                                         ⑤得出结论

          检验原理:将已知的汉明码按照前三步正常进行,到第四步时,用H接收P和D一起异或,然后把H倒序排列,若都为0,即无错。否则,该序列对应的二进制位置出错。

    15. 试说明循环冗余校验码的校验原理。P144

           循环冗余校验码的生成步骤:①确定校验位的位数 r

                                                          ②写出信息多项式 M(x)

                                                          ③将信息多项式左移 r 位,得到 M(x)·x^r

                                                          ④用 M(x)·x^r 除以生成多项式 G(x),得到 r 位校验位

                                                          ⑤M(x)·x^r+R(x) 得到CRC码

         检验原理:根据余数判出错位,取反纠错。

    二、计算题

    第6章  运算方法和运算部件

    定点原码一位乘:符号位单独计算,运算数取绝对值参与计算。

    定点原码两位乘:提高了乘法速度,但仍基于重复相加和移位的思想,且随着乘数位数的↗,重复次数↗,仍影响乘法速度。计算较复杂,不常考,自行看书!

    并行阵列乘法器:可大大提升乘法速度。(拓展)

    定点补码一位乘:分校正法比较法(Booth法)。校正法中被乘数符号任意,乘数分正、负两种情况。若乘数为正,则按原码一位乘的算法计算,符号位不用另外计算,被乘数的符号位参与计算若乘数为负,则按原码一位乘的算法计算,被乘数和乘数取绝对值参与计算,最后加上 [-x]补 校正。虽然可将乘数和被乘数互换,使乘数保持+,不必校正,但当两数均为-时必须校正。∵Booth的运算规则不受乘数符号的约束 ∴控制线路较简明,在计算机中普遍使用,常考!

    定点补码两位乘:自行看书!

    区别:补码乘法中,乘积得符号位是在运算过程中自然形成的。而原码乘法中,符号位与数值部分分开计算。

    困扰作者得问题是:被乘数和乘数互换位置的其它情况在此不一 一列举,以上三个例子,两个源于书本,同一组数据,书上的校正法却不能全部适用。望指点!

    P8应=1,感谢网友指正

    较复杂,不怎么考,在此不赘述!

    第四章  主存储器

            

    第七章  指令系统

    教材P324

    第3篇  中央处理器

    教材P384

    看下方!!

        ←参考P412例10.6,上题改正为

    已确定是对的!

    第四章  存储系统

    书上P122原题!

    鉴于我用公式写易误导大家,我上传书上原解如下:

    4.4  辅助存储器

    1. 若某磁盘有两个记录面,每面80个磁道,每磁道18扇区,每扇区存512字节,计算该磁盘的容量是多少?

    解:         18×512×80×2B=1440KB

    举个栗子( o=^•ェ•)o

    如果对你有帮助,可以给点小赏。记得关注我呦!

    展开全文
  • 要求:我要取出zhuang 字段下的唯一,说白了我就是要取出“1幢”,“2幢”,“3幢”。 主要方法是ToTable:  DataView dv = new DataView(dt);  DataTable dt1 = dv.ToTable(true, "zhuang"); //对...
  • python筛选excel某一列中相同的数据

    万次阅读 多人点赞 2018-11-13 11:34:57
    python筛选excel某一列中相同的数据 1.需要cmd下载 pip install pandas 的模板 2.注意文件的路径问题不要出错 3.还有文件的编码格式 ------encoding = 'gbk' import pandas as pd #读取excel文件信息 d...
  • a = [99,1,2,1,3,4] # 集合存储重复数据 b=set() for i in a: if a.count(i)>1: b.update([i]) dict ={} # 遍历重复数据 for j in b: list = [] for A in range(len(a)): if j == a[A]: l
  • 通过八爪鱼或者火车头等采集器从全网抓取的数据中,总会存在各种各样的重复数据,为保证数据在使用过程中的准确性,总要先进行一番清洗。 所有列是否完全重复 在Pandas中,.duplicated()表示找出重复的行,默认是...
  • 数据清洗之连续重复值值删除 在工作的时候,在删除重复之时,发现,仅仅使用drop_duplicated()无法满足需求,会有一种情况,按照业务的需求,有些列的数据,要是根据时间的发展,重复60次以上的数据才被视为重复...
  • 数据库查询是java开发人员必备的技能,当然也是java面试题中必考的,面试时...数据表DataTable DataTable DataId DataName DataValue 1 one 2 2 one 5 3 two 3 4 three 10 5 t...
  • 对Sheet1进行操作选中A列姓名 数据->删除重复项->以前选中区域排序->删除重复项 然后删除对应成绩项选中张三对应成绩B2,选中函数SUMIF 以上即可得出对用姓名总的成绩 转载于:...
  • Excel 多条件 比对 查询 多个 重复值

    千次阅读 2019-12-03 20:52:49
    工作经常需要用excel处理 2个条件比对查找重复值(3个条件比对查找重复值,4个条件比对查找重复值) 老是写公式太麻烦,干脆自己做了一个工具,只需复制表格,点击按钮一键完成。 说明:多条件比对查找多个值,且可...
  • 问题描述:统计出设备IP和设备名是不是一 一对应的关系,若是,找出这些一 一对应的组合。 1、读入数据 #-*- coding : utf-8 -*- #coding=utf-8 import pandas as pd #读入前先将文件通过记事本另存为utf-8格式 data...
  • Excel统计某列重复值数量方法

    千次阅读 2019-11-28 19:04:55
    比如要统计重复的列为A列,在要统计的A列隔壁插入一空列B列,在要统计的数据第一列对应位置输入公式=COUNTIF(A:A,A2),然后将公式向下填充,即可得到整列的重复统计数据。 =COUNTIF(A:A,A2) 解读:A:A 选择A列自动...
  • R中重复值、缺失值及空格值的处理

    千次阅读 2017-07-11 23:23:06
    6.1 R中重复值的处理 #导入CSV数据 data ('1.csv', fileEncoding = "UTF-8", ...new_data #重复值处理函数:unique,用于清洗数据中的处理重复值。 6.2 R中缺失值的处理 #缺失数据清洗 #读取数据 data ('1.
  • 1. F和G列为value和key 2.根据B2计算出A2的id列 ,公式为=LOOKUP(1,1/(B2=$F$2:$F$9),$G$2:$G$9)
  • 今天公司业务的需要,前端需要拿到审核状态(待审核,审核通过,审核不通过,总数),这三种状态下分别对应数据总数。 思路一:分别调用次数 我们可以通过前端分别调用三次接口进行查询出它们的总数,但是这样子...
  • Mysql根据多个字段找出重复数据

    千次阅读 2019-05-07 11:12:29
    根据一个字段判断是否相同很容易,两个字段分组后面可以继续添加添加,它们之间是and的关系,相当于sno和sname都相同的数据才会被显示,注意要取一个中间字段(sno )来做数据的第二次筛选! SELECT * FROM tb_test_...
  • 现在想要通过 python 导入两个表格数据,查找同名称的单元格,然后将对应的价格与数量相乘,最后导出一个新的表格,包含水果名称和销售金额。 我的思路是将两个EXCEL表格导入成两个字典,比较key,如果相同,则将...
  • 删除重复记录,只保留id字段最大的记录 delete from tb_table where id not in ( select maxid from ( select max (id) as maxid from tb_table group by sample_code) b); 1 使用...
  • 定位pandas指定列的重复数据

    千次阅读 2019-01-18 00:43:45
    link table中,a和b应该是一一对应关系,但是经过统计发现出现了重复行!试了很久才发现如何定位到重复行,分享給需要的童鞋。 原始iclink表形式如结果1所示,我需要ticker和permno保持一一对应关系,...
  • 假设你的文件名是a.txt,写到b.txt d = {} for line in open('a.txt'): d[line] = d.get(line, 0) + 1 fd = open('b.txt', 'w') for k, v in d.items(): if v > 1: fd.write(k) fd.close() ......
  • Python 如何判断列表内是否有重复数据并输出重复元素及对应重复次数? 集合、list.count(i)几种方式都尝试过,可以判断重复元素,但是无法输出具体重复信息,应该是return输出结果后后续的代码不执行,该怎么办? ...
  • 海量数据处理:查找重复元素

    千次阅读 2018-06-15 21:29:07
    本题最好的解决方案是通过使用位图法来实现,8位整数可以表示的最大十进制数值为99999999,如果每个数字对应于位图中的一个bit位,那么存储八位整数大约需要99Mbit,因为1Byte = 8bit,所以99Mbit折合成内存为99/8=12.375...
  • python 基础-----list查找重复值

    千次阅读 2018-07-20 17:37:40
    刚开始学python,在数据分析中遇到...需求2:假设有某列数据,需要判断该列数据是否包含重复项,包含的重复项是什么,重复了多少次。 一、需求1解决 1. 生成数据集 import numpy as np import pandas as pd df1...
  • 利用Pandas来清除重复数据

    万次阅读 多人点赞 2020-02-09 18:21:49
    最近刚好在练手一个数据挖掘的项目,众所周知,数据挖掘中比较重要的一步为数据清洗,而对重复数据的处理也是数据清洗中经常碰到的一项。本文将仅介绍如何利用Pandas来清除重复数据(主要指重复行),话不多说请看下文...
  • 现有一张表如上:content列有一个重复数据,我想去掉一条(不考虑其他列),显示成下面的结果select * from t_xf_care_education where id in (select min(id) from t_xf_care_education group by content);...
  • 1个订单号对应多个商品1:功能:点击订单信息显示订单详情(订单下可能出现一个或者多个商品)2:效果截图(黑色为订单数据,红色为商品数据)3:用table表格显示出来,此时要考虑商品实付款的信息是订单的信息。...
  • inner join出现重复值

    千次阅读 2020-05-28 20:11:52
    那么,需要思考和判断那些后续信息是否对我们的工作有用,无用可以直接删掉不要select,这样只留下distinct ID的数据,明显不会有重复ID 2.如果一定要去除指定的重复ID并留下想要的后续信息,可以使用row_number
  • #!/usr/bin/env python # !_*_ coding:utf-8 _*_ """ @version: python2.7 @license: Apache Licence @contact: longzinziyan@gmail.com @site: http://blog.csdn.net/dielian520 @software: PyCharm @time: 18-2-

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 704,451
精华内容 281,780
关键字:

如何计算重复值对应的数据