• numpy二进制转换和范围缩放


    numpy二进制转换和范围缩放

    觉得有用的话,欢迎一起讨论相互学习~

    我的微博我的github我的B站

    一维二进制转换

    import numpy as np
    # 一维二进制数组转换
    a=np.array([0,1,1,0,1,1]) #[1,6]
    print(a.shape)
    # (6,)
    # 转换算子
    Bi_conver_op=2**np.arange(a.shape[0]) # shape=[1,6]
    print("Bi_conver_op",Bi_conver_op)
    # [ 1  2  4  8 16 32]
    b=a.dot(Bi_conver_op[::-1].T)
    # [0,1,1,0,1,1]x[32,16,8,4,2,1].T
    print("b",b) # 27
    

    二维二进制数组转换

    two_di_a=a.reshape(1,6).repeat(4,axis=0) # [4,6]
    print("two_di_a 
    ",two_di_a)
    # two_di_a
    #  [[0 1 1 0 1 1]
    #  [0 1 1 0 1 1]
    #  [0 1 1 0 1 1]
    #  [0 1 1 0 1 1]]
    two_di_b=two_di_a.dot(Bi_conver_op[::-1].T)
    print("two_di_b",two_di_b)
    # two_di_b [27 27 27 27]
    

    二维二进制数组范围缩放

    二维二进制数组范围缩放到[0,1]

    # 将其缩放到[0,1]之间 2**6-1=63,因为原范围为[0,63]
    two_di_b_rescale=two_di_b.astype(float)/float(2**a.shape[0]-1)
    print("two_di_b_rescale",two_di_b_rescale)
    # two_di_b_rescale [ 0.42857143  0.42857143  0.42857143  0.42857143]
    

    二维二进制数组范围缩放到[5,10]

    # 将其缩放到[5,10]之间
    low_rescale=5
    high_rescale=10
    two_di_b_rescale_5_10=two_di_b_rescale*(high_rescale-low_rescale)+low_rescale
    print("two_di_b_rescale_5_10",two_di_b_rescale_5_10)
    # two_di_b_rescale_5_10 [ 7.14285714  7.14285714  7.14285714  7.14285714]
    
  • 相关阅读:
    奶牛碑文
    快速幂算法——人见人爱A^B
    杨辉三角
    iis404 没有设置mime的后缀
    jquery的click和js的funcition中的参数不一样
    asp:timer的权限与操作注意
    .net 文件上传,只上传修改的东西
    vscode的配置 和xdebug配制
    emoji编码后存储
    php 服务器请求其它网页的方法
  • 原文地址:https://www.cnblogs.com/cloud-ken/p/9928836.html
Copyright © 2020-2023  润新知