我想在我的数据集中的10个特征中编码3个分类特征.我用preprocessing从sklearn.preprocessing如下面这样做:
from sklearn import preprocessing
cat_features = ['color', 'director_name', 'actor_2_name']
enc = preprocessing.OneHotEncoder(categorical_features=cat_features)
enc.fit(dataset.values)
Run Code Online (Sandbox Code Playgroud)
但是,我无法继续,因为我收到此错误:
array = np.array(array, dtype=dtype, order=order, copy=copy)
ValueError: could not convert string to float: PG
Run Code Online (Sandbox Code Playgroud)
我很惊讶为什么它抱怨字符串,因为它应该转换它!我在这里错过了什么吗?
当我使用在线工具在1GB到字节之间进行转换时,我会得到不同的答案.例如,使用谷歌转换器:1GB=1e+9而在另一个转换器我得到1GB= 1073741824.我想根据是否1KB=1024B或1KB=1000B(这是谷歌单位)以不同的方式使用该单位.
如何使用小型C程序或功能知道我的机器使用哪个单元?C有宏吗?我想这样做,因为我的程序可能会通过各种操作系统运行.
写入文件的一种方法是使用fprintf().但是,此函数不会立即将结果写入文件.当程序终止或完成时,它似乎立即写入所有内容.
我的问题如下:我有一个需要很长时间才能运行的程序(大数据集需要4-5个小时).在此期间,我希望看到中间结果,这样我就不必等待5个小时.我的大学Sun Grid Engine用于提交工作.正如大多数人所知,你必须等到你的工作完成才能看到你的最终结果.因此,我希望能够将中间结果写入文本文件,并在程序处理时查看更新的结果(类似地,如果我正在使用printf).
如何修改fprintf()以立即将任何我想要的内容写入目标文件?
假设我将文件读入缓冲区:
FILE *fp = fopen("data.dat", "rb");
double *buf = calloc(100, sizeof(double));
fread(buf, sizeof(double),100, fp);
Run Code Online (Sandbox Code Playgroud)
我的目标是将加载的文件重新写入两个单独的文件,每个文件有50个元素(前50个文件到达文件,最后50个文件到另一个文件).我做以下事情:
int c;
FILE *fp_w= NULL;
for (c = 0; c < 2; ++c) {
sprintf(filename, "file_%d%s", c, ".dat");
fp_w = fopen(filename, "wb");
fseek(fp_w, 50*sizeof(double), SEEK_CUR);
fwrite(buf, sizeof(double), 50, fp_w);
}
fclose(fp_w);
Run Code Online (Sandbox Code Playgroud)
但是,我实际上并没有得到正确的分工.换句话说,我觉得指针fp_w不能很好地移动到位置50,我不知道如何以fseek另一种方式处理.任何帮助表示赞赏.
我的编译器告诉我,大小sizeof(long double)是16字节,这意味着它可以代表一个数字2^128.现在,我想知道精度可以处理多少位数.例如,如果x= 0.1234567812345678,long double可以确定x这里的精确精度?
谢谢
我有一个csv格式(无标题)的数据集,我想将其分为两部分:(1)没有最后一列的实际数据集,(2)最后一列(类标签)。我的数据集具有10万行和65个特征(其中最后一列65列是我要分离的类标签)。我写了以下内容:
dataset_path = 'dataset.csv'
dataset = np.genfromtxt(dataset_path, delimiter=',')
class_label = dataset[:-1]
dataset.drop(class_label, axis=1, inplace=True)
print dataset.shape
print class_label
Run Code Online (Sandbox Code Playgroud)
这实际上是错误的。我无法实现我想要的。任何帮助表示赞赏。