• 四级物理实验


    1.批量生成文件名

    # 编号列表
    num = []
    for i in range(10):
        num.append(i)
       
    
    # 文件名
    filename = []
    name = 'filename'
    for i in num:
        filename.append(name + str(i) + '.txt')
    
        
    # filename为文件名列表,查看输出结果
    for i in filename:
        print(i)

    结果:

     2.读取txt文件,成为numpy矩阵

    import numpy as np
    data = np.loadtxt(m,delimiter=' ')) #delimiter是txt文件中数据间间隔的标志

    3.读取文件,并对内容做修改

    def text_fmat_handing(initDataFname,restDataFname):
        '''
        格式处理/仅适用于本数据‘
        给原始txt数据文件路径和一个空的txt文件路径
        符合numpy的文件格式(其中delimiter=","),储存在给出的空文件
        '''
        f1 = open(initDataFname)
        f2 = open(restDataFname,"r+")
        initData = f1.read()
        restData = initData.replace("  ",",").replace(" ","").replace("\t","\n").replace(",\n","\n").replace("\n\n","\n")
        f2.write(restData)
        f1.close()
        f2.close()

    4.对列表或者numpy矩阵统计频次

    from collections import Counter 
    def text_element_count(alist):
        '''
        a=r.keys()元素
        b=r.values()为对应出现的次数
        max(a),min(a),len(a)
        max(b),min(b),len(b)
        '''
        r = Counter(alist)
        return r

    5.删除numpy矩阵中的某一行或某一列

    import numpy as np
    def
    text_cnorrw_delete(array,index_list,axis_num): ''' 删除np_array中的行或列,删除的行列位置又index_list给出 axis_num =0为删除行,等于1为删除列 ''' a = np.delete(array,index_list,axis=axis_num) return a

    6.画条形图(有中文显示设置)

    import matplotlib.pyplot as plt
    
    def draw_bar(values,lable=[],title="柱图",xlabel = 'x',ylabel = 'y',size = (8,7)):
        plt.rcParams['font.sans-serif'] = 'SimHei'      #设置中文显示
        plt.rcParams['axes.unicode_minus'] = False      #设置正常显示符号
        plt.figure(figsize=size)
        plt.bar(range(len(values)),values)
        #plt.xticks(range(67),hit_count.keys())
        plt.xlabel(xlabel)
        plt.ylabel(ylabel)
        plt.title(title)
        plt.show()

    7.在一个方形图上找出点并标记颜色

    plt.figure(figsize=(8,7))
    plt.title('Hit Map(chip2)')
    plt.scatter(x1,y1,marker='o',c='red')
    plt.scatter(x2,y2,marker='s',c='blue')
    plt.xlabel('x')
    plt.ylabel('y')
    plt.xticks(range(610,660,2))  #x从610,660,2表示间隔
    plt.yticks(range(0,520,20)) # 同上
    plt.legend(['Dead','Inefficient ']) #图例
    plt.show()

    8.一个方形,给出了一些点的位置,要把这个方形上没有给出的位置找出来

    这个一般思路很简单,但是速度有块又慢。

    下面要求是已经给出了1024*512点阵中的一些点,在sites_chip中,现在要求找出其余没给出点的位置。

    sites_chip2 = []
    for m in condition_01[2]:
        sites_chip2.append((m[0],m[1]))    # 就是存着现在数据里面已经有的坐标,为1024*512点阵中的一些点
    
    '''
    # 这种直接的方法很慢
    sites_dead_chip2 = []
    i = 0
    while i < 1024:
        j = 0
        while j < 512:
            a = (i,j)
            print(a)
            if (a in sites_chip2 != True):
                sites_dead_chip2.append(a)
            j += 1
        i+=1
    '''
    
    # 这种方法是实验时数据有一定的特点,所以这样做可以减少很多步骤 a
    = Counter(condition_01[2][:,0]).values() # chip2,行650,651,616,617不足512 sites_dead_chip2 = [] # dead pixels'sites of chip2 i = 0 while i < 512: if ((650,i) in sites_chip2) != True: sites_dead_chip2.append((650,i)) if ((651,i) in sites_chip2) != True: sites_dead_chip2.append((651,i)) if ((616,i) in sites_chip2) != True: sites_dead_chip2.append((616,i)) if ((617,i) in sites_chip2) != True: sites_dead_chip2.append((617,i)) i+=1 print(i)

    那根据现在我的想法,可以先生成一个1024*512的0矩阵,将已给出的点的位置的值改为1。再遍历这个矩阵,值为0的位置就是没给出的点的位置。

    import numpy as np
    
    sites = [] #给出的点的位置
    for m in condition_01[2]:
        sites.append((m[0],m[1]))  
    
    map1 = np.zeros((512,1024))
    for m in sites:
      map1[m[0]][m[1]] = 1
    
    unsite = [] #没有给出的点的位置
    for i in range(512):
      for j in range(1024):
        if map1[i][j] = 0:
          unsite.append((i,j))    

    9.方形中,给出了一些点的值,画热力图。

    画热力图需要一个数值矩阵。已给的数据是点的坐标以及它对应的值,如(3,4,87)代表点(3,4)处的值为87。为了画热力图,需要把值放进矩阵的相应位置中。

    所以可以先生成一个0矩阵,再修改对应点位置的值。再画热力图。

    map1 = np.zeros((512,1024))
    for m in condition_10[i]:
        map1[int(m[1])][int(m[0])] = m[2]
    plt.imshow(map1)
    plt.colorbar() #生成色条。相当于图例
    plt.show()
    轩中一人,名为萧百,意为小白。
  • 相关阅读:
    Redis之分布式锁的使用
    Redis之lua脚本
    Redis 集群的水平扩缩容
    Redis集群搭建及原理
    Redis 的主从、哨兵架构
    CompletableFuture 使用介绍
    Spring Boot 2.x使用H2数据
    pom.xml
    nexus-staging-maven-plugin 踩坑
    安卓Hook折腾研究的笔记记录
  • 原文地址:https://www.cnblogs.com/ltwen/p/15769412.html
Copyright © 2020-2023  润新知