相关疑难解决方法(0)

将hex转换为二进制

我有ABC123EFFF.

我想拥有001010101111000001001000111110111111111111(即二进制代表,例如42位数和前导零).

怎么样?

python string binary hex string-formatting

96
推荐指数
10
解决办法
25万
查看次数

Python:获取和操作(作为整数)浮点数的位模式

在Python V.2.5.4中,我有一个浮点数,我想获取并操作(作为整数)浮点数的位模式.

例如,假设我有

x = 173.3125
Run Code Online (Sandbox Code Playgroud)

在IEEE 754格式中,x的位模式(十六进制)是x.

如何在该位模式上获取和操作(例如,执行按位操作)?

python floating-point bit-manipulation

12
推荐指数
2
解决办法
6087
查看次数

在Python中获取浮点数的"位"?

我正在寻找Python的Python等价物Float.floatToBits.

我发现这个Python:获取和操作(作为整数)浮点数的位模式,但有没有人知道一个不那么复杂的方式?

python floating-point bitwise-operators

11
推荐指数
1
解决办法
7145
查看次数

Numpy 的 loadtxt 和 Pandas read_csv 导致不同的 float64 表示

以下代码是一个更大项目的一部分。在我的项目中,我必须阅读一个大文本文件,可能有几百万行,每行都有一对用空格分隔的小数。

一个例子如下:

-0.200000 -1.000000
-0.469967 0.249733
-0.475169 -0.314739
-0.086706 -0.901599
Run Code Online (Sandbox Code Playgroud)

到目前为止,我使用了一个由我创建的定制解析器,它运行良好,但不是最快的。在线搜索我发现numpy的loadtxt和pandas read_csv。第一个效果很好,但它的速度比我的还要差。第二个非常快,但我后来在我的项目中遇到了错误(我用有限元方法解决了一些 PDE,在用我的解析器或 loadtxt 读取坐标时,我得到了正确的结果,当我使用 read_csv 矩阵 A 时系统 Ax=b 变为单数)。

所以我创建了这个测试代码来看看发生了什么:

import numpy as np
import pandas as pd

points_file = './points.txt'

points1 = pd.read_csv(points_file, header=None, sep='\s+', dtype=np.float64).values
points2 = np.loadtxt(points_file, dtype=np.float64)

if (np.array_equal(points1, points2)):
    print ('Equal')
else:
    print ('Not Equal')

for i in range(len(points1)):
    print (points1[i] == points2[i])
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,输出是:

Not Equal
[ True  True]
[ True False]
[False  True]
[False False]
Run Code Online (Sandbox Code Playgroud)

已经很困惑,我继续搜索,我从用户“Dan Lecocq”那里找到了这个函数来获取数字的二进制表示。

因此,对于第二行中的第二个数字 (0.249733),来自 read_csv …

python numpy pandas

8
推荐指数
1
解决办法
2642
查看次数

有没有相当于octave命令`format bit`的python?

在八度音程中,命令之后的所有数字输出format bit将显示存储在存储器中的数字的本机位表示.例如,

octave:1> format bit
octave:2> 0.5
ans = 0011111111100000000000000000000000000000000000000000000000000000
octave:7> 2
ans = 0100000000000000000000000000000000000000000000000000000000000000
octave:3> format
octave:4> 0.5
ans = 0.50000
Run Code Online (Sandbox Code Playgroud)

在python中是否有一个等效的命令来显示其原生位表示中的所有数字(所以输出如下所示)?

>>> "equivalent of the octave format bit command"
>>> 0.5
0011111111100000000000000000000000000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)

(这与0.5的二进制表示非常不同.)

python

6
推荐指数
1
解决办法
227
查看次数

对于浮点数,Tensorflow逐位NOT运算

我有一个Tensorflow布尔向量,我需要逐位反转,使​​得0(False)的所有值变为1(True),反之亦然.tf.logical_not存在,但它只接受布尔向量.是否存在Tensorflow在int或float的向量上执行此操作,因此我不需要重构我的张量?

bit-manipulation tensorflow

2
推荐指数
1
解决办法
1130
查看次数

将大量数字乘以 random() (Python)

问题:生成大型二进制字符串(长度 2000+)。动作要快,因为该generateRandom()函数将在算法中被调用300,000次。

尝试的解决方案:生成 3 或 4 个二进制数并将它们全部附加在一起 ​​500 次。这太慢了。

对 random.random() 进行一次调用并将其乘以一个巨大的数字。转换为二进制一次即可完成。这适用于较小的数字,但由于二进制字符串必须具有一定的长度,因此要转换为二进制的数字必须非常巨大(2 ** len(binString))。

当前代码(适用于较小的数字):

binaryRepresentation = ''

binaryRepresentation += bin(int(random.random() * (2 ** binLength)))[2:].zfill(binLength)
Run Code Online (Sandbox Code Playgroud)

我需要帮助修复的错误:此调用会抛出一个“长整型太大,无法转换为浮点数”和大量数字。有没有办法使整个算法更高效或使这个大数字可以转换为浮点数?

谢谢你!

python optimization largenumber

1
推荐指数
1
解决办法
1540
查看次数

在 Python 中浮动到二进制和二进制到浮动

谁能告诉我如何在python中将浮点数转换为32位二进制字符串以及从32位二进制字符串转换为浮点数?

python 中的“bin”函数仅适用于整数。

我需要一个单比特字符串作为内部表示。我不希望小数位前后的数字有单独的位串,小数位之间由小数位连接。

编辑:标记的问题没有解释如何将二进制字符串转换为浮回。

floating-point binary python-3.x

0
推荐指数
1
解决办法
7898
查看次数