这个包提供了使用numpy操作浮点数量化的模块。

fpq的Python项目详细描述


LicenseBuild StatusPyPI versionPyversions

首件鉴定

关于

这个包提供了操作浮点数的模块 使用numpy量化。

功能

  • 支持多维数组。
  • 支持64/32/16位浮点之间的编码和解码 数字和N位无符号规范化整数。
  • 支持64/32/16位浮点之间的编码和解码 数字和n位有符号规范化整数。
  • 支持三维矢量和N位无符号之间的编码和解码 整数。
  • 支持四元数和n位之间的编码和解码 无符号整数。

兼容性

fpq适用于python 3.4或更高版本。

依赖性

  • 努比
  • numba

安装

pip install fpq

使用量

32位浮点数与5位的编解码 无符号规范化整数。

>>>importnumpyasnp>>>fromfpq.fpimport*>>>fp=np.array([0.,0.25,1.],dtype=np.float32)>>>enc=encode_fp_to_std_unorm(fp,dtype=np.uint8,nbits=5)>>>encarray([0,8,31],dtype=uint8)>>>dec=decode_std_unorm_to_fp(enc,dtype=np.float32,nbits=5)>>>decarray([0.,0.2580645,1.],dtype=float32)

32位浮点数与5位的编解码 有符号规范化整数。

>>>importnumpyasnp>>>fromfpq.fpimport*>>>fp=np.array([-1.,-0.25,-0.,0.,0.25,1.],dtype=np.float32)>>>enc=encode_fp_to_std_snorm(fp,dtype=np.uint8,nbits=5)>>>encarray([31,9,1,0,8,30],dtype=uint8)>>>dec=decode_std_snorm_to_fp(enc,dtype=np.float32,nbits=5)>>>decarray([-1.,-0.26666668,-0.,0.,0.26666668,1.],dtype=float32)>>>enc=encode_fp_to_ogl_snorm(fp,dtype=np.uint8,nbits=5)>>>encarray([17,28,0,0,4,15],dtype=uint8)>>>dec=decode_ogl_snorm_to_fp(enc,dtype=np.float32,nbits=5)>>>decarray([-1.,-0.26666668,0.,0.,0.26666668,1.],dtype=float32)

三维矢量与64位的编解码(2:20:20:22) 无符号整数。

>>>importmath>>>importrandom>>>importnumpyasnp>>>fromfpq.vectorimport*>>>v=np.array([vec_random(norm=100.)for_inrange(3)],dtype=np.float64)>>>varray([[-54.70386501,-22.45578546,-52.18237577],[-85.46791152,-5.69032986,1.21334561],[16.02886205,1.94634654,-30.35219431]])>>>enc=encode_vec_to_uint(v,dtype=np.uint64,nbits=20)>>>encarray([1313110064653969262,306332797892602581,11373476070061802081],dtype=uint64)>>>dec=decode_uint_to_vec(enc,dtype=np.float64,nbits=20)>>>decarray([[-54.69957531,-22.45404536,-52.17828412],[-85.4662517,-5.69027392,1.21334561],[16.02845595,1.94632843,-30.3514349]])

四元数与64位的编解码(2:20:20:20) 无符号整数。

>>>importnumpyasnp>>>fromfpq.quaternionimport*>>>q=np.array([quat_random()for_inrange(3)],dtype=np.float64)>>>qarray([[0.25679071,-0.15512517,0.88804262,0.34838917],[0.71399177,0.05729705,-0.69728753,-0.02688697],[-0.66527338,-0.62596543,-0.40672262,-0.01246296]])>>>enc=encode_quat_to_uint(q,dtype=np.uint64)>>>encarray([2724532880236077588,93422189206870975,1020620101889574962],dtype=uint64)>>>dec=decode_uint_to_quat(enc,dtype=np.float64)>>>decarray([[0.25679011,-0.15512497,0.88804308,0.34838854],[0.71399243,0.0572969,-0.69728688,-0.02688637],[0.66527395,0.62596484,0.40672258,0.01246335]])

Here是 很少有例子。

文件

对于用户,文档现在可以在https://hasenpfote.github.io/fpq/获得。

许可证

此软件是在麻省理工学院的许可下发布的,请参阅许可证。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
junit有没有办法在Java中重新初始化静态类?   在浏览器中点击应用程序时java Play框架挂起   文件Java错误中的NullPointerException   使用Java中的SNMP查找网络中计算机的登录名   java包装服务器引导程序已弃用,有什么替代方案?   当客户在等待理发时,java信号量值是否存在问题?   java如何使用JavaMail仅下载特定类型的附件   如何在java中将十进制转换为十六进制   java Slick2D粒子系统不会生成粒子   java检测更改事件来自何处   将Java集合类型参数类设置为数组   java如何从eclipse导出为可运行JAR文件?   java EntityManager对象未注入Glassfish和Spring   swing从actionPerformed和actionListener Java返回字符串   java在给定另一个等价键对象的情况下获取映射项的当前键   无论输入如何,java网络都会产生相同的输出