数据集包含数值变量和分类变量,然后我将其分为两部分:
cont_data = data[cont_variables].values
disc_data = data[disc_variables].values
Run Code Online (Sandbox Code Playgroud)
然后我使用sklearn.preprocessing.OneHotEncoder对分类数据进行编码,然后我尝试将编码的分类数据与数值数据合并:
np.concatenate((cont_data, disc_data_coded), axis=1)
Run Code Online (Sandbox Code Playgroud)
但是出现以下错误:
ValueError: all the input arrays must have same number of dimensions
Run Code Online (Sandbox Code Playgroud)
我确保维数相等:
print(cont_data.shape) # (24000, 35)
print(disc_data_coded.shape) # (24000, 26)
Run Code Online (Sandbox Code Playgroud)
终于,我发现那cont_data是一段numpy array时间
>>> disc_data_coded
<24000x26 sparse matrix of type '<class 'numpy.float64'>'
with 312000 stored elements in Compressed Sparse Row format>
Run Code Online (Sandbox Code Playgroud)
我改变了参数sparse的OneHotEncoder是False,一切都OK了。但问题是,如何numpy array在sparse matrix不设置的情况下直接将 a与 a合并sparse=False?
该方法enumerateByteRangesUsingBlock:在课堂上NSData,并在Apple文档中解释如下:
使用块枚举数据对象中的每个字节范围.
- (void)enumerateByteRangesUsingBlock:(void (^)(const void *bytes, NSRange byteRange, BOOL *stop))block参数
block
要应用于数组中字节范围的块.该块有三个参数:
bytes
当前范围的字节.
byteRange
当前数据字节的范围.
stop
对布尔值的引用.该块可以将值设置为YES以停止进一步处理数据.stop参数是一个out-only参数.您应该只在块中将此布尔值设置为YES.讨论
枚举块被调用一次用于接收器中的每个连续内存区域(对于连续的NSData对象一次),直到枚举所有字节或者将stop参数设置为YES.
但我的问题是,块何时执行?哪个方法负责提供参数bytes,byteRange以及stop块?例如,如果我想遍历一部分字节数组,我该怎么做才能控制?
执行时pip3 install cryptography,pip3会出错:
致命错误:找不到'openssl/aes.h'文件
#include <openssl/aes.h>生成1个错误.
错误:命令'/ usr/bin/clang'失败,退出状态为1
我查了一下brew info openssl并得到了答案:
一般来说,这对您没有任何影响.如果您构建自己的软件并且需要此公式,则需要添加到构建变量中:
LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
现在的问题是:如何pip在clang用于编译cpp文件时将路径添加到相应的构建变量中?