qq_33299814
2019-07-08 16:52
采纳率: 50%
浏览 335

将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,)

图片说明

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • qq_33299814 2019-07-10 08:35
    已采纳

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

    打赏 评论
  • 吃鸡王者 2019-07-08 17:13

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

    打赏 评论
  • threenewbee 2019-07-08 17:57

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

    打赏 评论

相关推荐 更多相似问题