将sklearn的标准化函数封装供Qt调用为什么成功不了?

将sklearn的标准化函数封装供Qt调用为什么成功不了?

问题描述:

如代码所示,我将sklearn标准化函数封装起来QT调用返回为空

def StandardScalarTransformer(Xarray):
    from sklearn.preprocessing import StandardScaler
    clf=StandardScaler()
    X=clf.fit_transform(Xarray)
    # X=Xarray
    return (X,)

图片说明图片说明!

但是如果是将数组原封不动的返回,其他语句都注释掉,程序是可以正常返回值的

def StandardScalarTransformer(Xarray):
    # from sklearn.preprocessing import StandardScaler
    # clf=StandardScaler()
    # X=clf.fit_transform(Xarray)
    X=Xarray
    return (X,)

图片说明

请问我是不是哪个地方配置不对

睡了一觉迷之修复了,Python端和Qt端的代码我都没有动过,自己也是一头雾水。估计是构建工程之前需要彻底清除然后重新构建吧,不管怎样,感谢各位同行的建议和意见!

X=clf.fit_transform(Xarray) 中 clf.fit_transform(Xarray) 的返回值估计就是空的,你单独测试一下试试

建议你采用程序调用的方式(而不是封装成dll),去掉用python端代码。如果需要包装程序不想让用户接触到源代码,就打包下。
通过程序调用,从标准输入/输出(stdin/out)交换数据兼容性比较好,也好调试。
dll调用,需要考虑很多二进制兼容问题,比如x86/x64下指针的不同,内存的分配,参数的长度,数据类型。