zoukankan      html  css  js  c++  java
  • 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]
    
  • 相关阅读:
    topshelf和quartz
    Dapper的使用
    多快好省的做个app开发
    端口扫描之王——nmap入门精讲(转)
    你对自己的定位是什么,就能成为什么样的人(转)
    2015工作总结及2016展望
    使用php+swoole对client数据实时更新(二) (转)
    解决一bug的流程复盘
    JSONObject与JSONArray的使用
    GDB十分钟教程
  • 原文地址:https://www.cnblogs.com/cloud-ken/p/9928836.html
Copyright © 2011-2022 走看看