zoukankan      html  css  js  c++  java
  • py-统计一个矩阵中每一列的非0数的个数

    1.文件类型类似于这样:

    不过数据量比这个要更大一点。

    2.对应上述数据的运行结果:

    import matplotlib.pyplot as plt
    
    with open('test.txt') as fob:
        lines=fob.readlines()
    
    #去除掉每行最后一个换行符,就可以正确统计了,我也真不知道是为什么
    for i in range(len(lines)):
        lines[i]=lines[i].rstrip()
    
    #在这里要创建一个长度的list进行统计
    #但是这个地方的lines应该是包括空格的长度。
    lens=len(lines[0].split(" "))-1
    lts=[0 for _ in range(lens)]#这里存的数据类型是int
    
    for line in lines:
        lt=line.split(" ")#这里lt是str类型的
        lt.pop(0) #删除掉第一个元素
        #for k in lt:
        #   print(k,end="")#这里是不换行输出
        for i in range(len(lt)):
            if lt[i] != '0':
                lts[i]+=1
            if(i==6):
                print(lt[i]+" "+str(lts[i]))
    #画一个折线图
    for i in lts:
        print(i)
    plt.plot(lts,linewidth=5)
    plt.show()
    
        
            

    //其中学到了不少东西。

    运行结果:

    1.如何按行读取文件并且存储到list中

    2.如何创建一个指定长度和初值的list

    3.从文件中读取的行进行split之后仍然是str类型的

    4.如何画折线图进行巩固

    5.其中还出现了一个问题,就是在统计最后一行的非0个数时老是出错,通过将换行符去掉,也就是加上了rstrip()函数之后就可以正常使用了。

    5.python中没有自增:

    转自:https://blog.csdn.net/guang09080908/article/details/47273775

    https://www.cnblogs.com/erbaodabao0611/p/7646945.html

    意思就是,使用++/--会使变量的id发生变化如下:

    a=5
    print(id(a))
    a+=1
    print(id(a)) #相当于新生成了一个变量,操作后的结果赋予了这个新的变量。
    #++的话代表改变了对象本身,
    #python数据对象是不可改变的。
    
    b=5
    print(id(b))
    b=6
    print(id(6))
    
    #运行结果
    2012966032
    2012966064
    2012966032
    2012966064
  • 相关阅读:
    操作系统简介
    正则表达式
    Python socket
    计算机网络基础
    计算机基础
    Python常用模块
    Python模块和包
    Python反射和内置方法(双下方法)
    Python类的成员
    更改命令行,完全显示hostname
  • 原文地址:https://www.cnblogs.com/BlueBlueSea/p/9884017.html
Copyright © 2011-2022 走看看