标签: binary-data

使用Ruby BinData gem来读取选择

我正在使用Ruby和BinData gem 实现数据结构.我需要实现一个Choice值.根据BinData文档,可以选择实现:

class MyData < BinData::Record
  uint8  :type
  choice :data, :selection => :type do
    type key #option 1
    type key #option 2
  end
end
Run Code Online (Sandbox Code Playgroud)

我需要在选择中有一个默认选项:

class MyRecord < BinData::Record
    uint8 :type
    choice :mydata, :selection => :type do
            uint32 0
            uint16 1
    end
end
Run Code Online (Sandbox Code Playgroud)

如果type不是01在上面的代码中,如何处理?

ruby choice binary-data bindata

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

如何使用多个列中的条件创建单个虚拟变量?

我正在尝试根据数据集中的7个变量(col9-15)中的一个或多个取特定值(35),在我的数据集中有效地创建二进制虚拟变量(1/0),但是我不想测试所有列。

通常,as.numeric是理想的,但我一次只能使它与一列一起工作:

data$indicator <- as.numeric(data$col1 == 35)
Run Code Online (Sandbox Code Playgroud)

知道如何修改上面的代码,以便如果任何一个data$col9- data$col15为“ 35”,那么我的指标变量取1?

谢谢!!!

r binary-data indicator categories dummy-data

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

从C/C++中的变量中观察位

我想读一个数字,比如一个浮点数,并允许用户查看哪个位模式负责他们的输入.如何允许将变量作为int或数组打印或存储为简单的二进制值而不是0-9或az等?

这不符合我的要求.它改为给出一个数字0-9的int,这显然不是二进制数.

int main(){

cout << "Please enter a float number." << endl;
float number;
    cin >> number;

    int bits = *((int*) &number);

    cout << number << endl;

    cout << bits << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c c++ binary-data

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

C++ istream :: read导致未定义的行为

我使用以下代码将n字符从二进制文件复制到char*变量:

 std::ifstream is ("write.abc", std::ifstream::binary);
  if (is) {
    // get length of file:
    is.seekg (0, is.end);
    int length = is.tellg();
    is.seekg (0, is.beg);

    char * buffer = new char [length];

    std::cout << "Reading " << length << " characters... ";
    // read data as a block:
    is.read (buffer,length);
    std::cout << "length of buffer: "<<strlen(buffer) <<endl;
    std::cout << "Content of buffer: "<<buffer <<endl;
.......
Run Code Online (Sandbox Code Playgroud)

我的文件内容:

在此输入图像描述

这是编译的结果: 在此输入图像描述

我的问题如下:我等着:

缓冲长度:13

缓冲内容:abcdefghjklmn

有人可以帮我解释一下结果吗?

c++ binaryfiles binary-data

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

读取具有不同数据类型的二进制文件

试图将Fortran中生成的二进制文件读入Python,它有一些整数,一些实数和逻辑.目前我正确地阅读了前几个数字:

x = np.fromfile(filein, dtype=np.int32, count=-1)
firstint= x[1]
...
Run Code Online (Sandbox Code Playgroud)

(np是numpy).但下一个项目是合乎逻辑的.后来又在实际上再次实施.我该怎么做?

python numpy binary-data

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

该二进制编码器功能如何工作?

我正在尝试了解此二进制编码器背后的逻辑。

它会自动获取分类变量并对它们进行虚拟编码(类似于sklearn上的一键编码),但是减少的输出列数等于唯一值长度的log2。

基本上,当我使用该库时,我注意到我的虚拟变量仅限于少数唯一值。在进一步研究中,我注意到了这一点@staticmethod,它在分类变量中采用了唯一值len的log2。

我的问题是为什么?我意识到这降低了输出数据的维数,但是这样做的背后逻辑是什么?使用log2如何确定表示数据所需的位数?

 def calc_required_digits(X, col):
        """
        figure out how many digits we need to represent the classes present
        """
        return int( np.ceil(np.log2(len(X[col].unique()))) )
Run Code Online (Sandbox Code Playgroud)

完整的源代码:

"""Binary encoding"""

import copy
import pandas as pd
import numpy as np
from sklearn.base import BaseEstimator, TransformerMixin
from category_encoders.ordinal import OrdinalEncoder
from category_encoders.utils import get_obj_cols, convert_input

__author__ = 'willmcginnis'


[docs]class BinaryEncoder(BaseEstimator, TransformerMixin):
    """Binary encoding for categorical variables, similar to onehot, but stores categories as binary bitstrings.

    Parameters
    ----------

    verbose: int
        integer indicating …
Run Code Online (Sandbox Code Playgroud)

binary-data categorical-data dummy-variable one-hot-encoding

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

在 Elixir 中连接位串

这段代码抛出错误:

 iex(35)> a = <<18::size(7)>>
     <<18::size(7)>>
 iex(36)> b = <<100::size(7)>>
     <<100::size(7)>>
 iex(37)> <<a <> b>>
     ** (ArgumentError) argument error
Run Code Online (Sandbox Code Playgroud)

为什么这段代码失败了?

如何使用变量连接位串?

(我根据mudasobwa的评论更新为示例)

elixir binary-data

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

C++从istream中读取二进制数据

我有一个 istream,我必须将其读入缓冲区。一旦遇到 eof,我找不到一种方法来找出 read_len 吗?我无法使用 get,因为我的文件没有分隔符。

似乎唯一的选择就是逐个字符地阅读它,这真的是唯一的选择吗?

char buffer[128];
while(is.good()) {
     is.read(buffer, sizeof(buffer));
     size_t read_len = sizeof(buffer);
     if (is.eof()) {
         read_len = xxxx;
     }
     process(buffer, read_len);
}
Run Code Online (Sandbox Code Playgroud)

c++ binary-data istream

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

通过比较R中的两个变量来标记每条记录

如何创建一个新的二进制变量来比较现有数据框中的另外两个二进制变量?

对于数据框"dframe":

    ID       FlagA  FlagB
1   28602363    1    0
2   28605734    0    1
3   28608629    1    0
4   28611734    1    0
5   28619822    NA   0
6   28622689    1    1
7   28650295    NA   1
8   28650378    0    1
9   28651602    1    1
10  28656060    1    0
Run Code Online (Sandbox Code Playgroud)

我试图创建列"FlagAB",如果FlagA = 1且FlagB = 0则为1,对于任何其他组合为0,如下所示:

    ID          FlagA   FlagB   FlagAB
1   28602363    1       0       1
2   28605734    0       1       0
3   28608629    1       0       1
4   28611734.71 1       0       1
5   28619822    NA      0       0
6 …
Run Code Online (Sandbox Code Playgroud)

if-statement r binary-data conditional-statements

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

为什么"double"表示为整数?

void foo(double a) {  
  ...
}
Run Code Online (Sandbox Code Playgroud)

main()我传递107.0foo它作为参数.然后我使用gdb来检查aby 的二进制表示p /t a,这就是我得到的:

$1 = 1101011
Run Code Online (Sandbox Code Playgroud)

这个结果对我来说似乎很奇怪.这是INTEGER 107的二进制表示.但是这里的类型a被定义为double并且我们传递了一个参数107.0.我们知道双精度具有不同的二进制表示形式作为整数.

谁能解释为什么a有一个整数二进制代表而不是双倍?编译器做了什么搞笑的事情?

c double gcc gdb binary-data

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