小编Fol*_*lau的帖子

为什么在乘以 Numpy 乘积输出时会出现溢出错误?

由于乘以我想要理解的 Numpy 产品的输出,我遇到了溢出警告。它们在我的大型项目中实际使用的简化版本详述如下:

import numpy as np

class MyClass(object):
    def __init__(self,
                 array_1,
                 array_2):

        # Assigning arrays to be used in later methods
        self.array_1 = array_1
        self.array_2 = array_2

        # Assigning some scaling factors to be used in later methods.
        self.value_1 = np.prod(self.array_1.shape)
        self.value_2 = np.prod(self.array_2.shape)
        print("Numpy Product Assignment: {0}, {1}".format(self.value_1, self.value_2))

        # Alternative assignment of scaling factors
        self.alt_value_1 = self.array_1.shape[0] * self.array_1.shape[1]
        self.alt_value_2 = self.array_2.shape[0] * self.array_2.shape[1]
        print("Regular Product Assignment: {0}, {1}".format(self.alt_value_1, self.alt_value_2))

        pass

    def mymethod(self):
        print("Direct Multiplication: {0}".format(80160 * …
Run Code Online (Sandbox Code Playgroud)

python numpy python-3.x

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

Python结构模块长度的差异

我正在尝试使用Python的struct模块来解码来自GPS系统的一些二进制头文件.我有两种类型的标题,长和短,我有一个例子,阅读下面的每一个:

import struct
import binascii

packed_data_short = binascii.unhexlify('aa44132845013b078575e40c')
packed_data_long = binascii.unhexlify('aa44121ca20200603400000079783b07bea9bd0c00000000cc5dfa33')

print packed_data_short
print len(packed_data_short)

sS = struct.Struct('c c c B H H L')

unpacked_data_short = sS.unpack(packed_data_short)
print 'Unpacked Values:', unpacked_data_short

print ''

print packed_data_long
print len(packed_data_long)

sL = struct.Struct('c c c B H c b H H b c H L L H H')

unpacked_data_long = sL.unpack(packed_data_long)
print 'Unpacked Values:', unpacked_data_long
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我都得到了我期望的长度 - 短标头为12个字节,长标头为28个字节.此外,所有字段都正确显示(据我所知,对于旧数据)是合理的值.到目前为止都很好.

我提出这个跨越到另一台计算机(运行不同版本的Python的-而不是2.7.11 2.7.6),我得到不同的结构长度使用calcsize,并获得试图通过它,我都计算的长度和其他错误版本是满意的.现在短标头需要16个字节,而长标签需要36个字节.

如果我通过更大的金额,它要求大多数记录都找到,直到"L"记录.在长示例中,第一个是预期的,但第二个应该只是0,不正确,因此后面的两个字段也是不正确的.在功能方面希望我注意到,这是4对每个"1"的,实际上只是运行的字节数的光struct.calcsize('L'),我得到8在2.7.6和4 2.7.11长度.这至少缩小了问题所在,但我不明白为什么会发生这种情况.

目前我正在将第二台计算机更新为Python 2.7.11(一旦我拥有它就会更新),但我在结构文档中找不到任何可能表明已经发生变化的内容.有没有我明显错过的或者这只是一个版本问题?

我所指的文件就在这里.

编辑:进一步评论OS - …

python

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

使用 crcmod 在 Python 中重新创建 C CRC32 算法

我正在尝试在 Python 中解码 Novatel GPS 流,并且我已对同步、标头和有效负载的所有组件进行了排序,但我无法复制用作消息一部分的 CRC32。用于生成附加在消息上的 CRC 的算法用 c 编写如下:

#include <iostream>
#include <string>

using namespace std;

#define CRC32_POLYNOMIAL 0xEDB88320L
//#define CRC32_POLYNOMIAL 0x04C11DB7L

unsigned long CRC32Value(int i)
{
    int j;
    unsigned long ulCRC;
    ulCRC = i;
    for (j = 8; j > 0; j--)
    {
        if (ulCRC & 1)
            ulCRC = (ulCRC >> 1) ^ CRC32_POLYNOMIAL;
        else
            ulCRC >>= 1;
    }
    return ulCRC;
}
unsigned long CalculateBlockCRC32(
    unsigned long ulCount,
    unsigned char *ucBuffer)
{
    unsigned long ulTemp1;
    unsigned long …
Run Code Online (Sandbox Code Playgroud)

python crc32 python-2.x

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

标签 统计

python ×3

crc32 ×1

numpy ×1

python-2.x ×1

python-3.x ×1