gpt4 book ai didi

python - Octave isnan : not defined error using oct2py

转载 作者:行者123 更新时间:2023-12-01 08:10:11 25 4
gpt4 key购买 nike

使用 oct2py 在多个 (10MM+) 大小的数据帧上调用 corrcoef.m 以返回 [R,P] 矩阵,从而为 ML 算法生成训练集。昨天,我的这个工作没有问题。今天早上从顶部运行脚本,返回一个相同的测试集并通过 oct2py 传递给 Octave。

我被退回:

Oct2PyError: Octave evaluation error:
error: isnan: not defined for cell
error: called from:
corrcoef at line 152, column 5
CorrCoefScript at line 1, column 7

首先,集合中没有 null/nan 值。事实上,连零都没有。任何列中都不存在一致性,因此 corrcoef 计算中不会返回标准偏差。它在数学上是合理的。

其次,当我通过 GUI 将测试集加载到 Octave 并对相同数据执行相同的 .m 时,不会返回任何错误,并且 [R,P] 矩阵与昨晚保存的输出相同。我测试了矩阵变量是否通过 oct2py 正确传递给 Octave,并且 Octave 正在接收相同的矩阵。但是,oct2py 无法再在源代码中执行 nan 检查的 ANY .m 。对于任何包含 .isnan 的 Octave 打包 .m 脚本,都会返回上述错误。

对于 s&g,我修改了 .m 以接收矩阵 var 并将其写入平面文件,如下所示:

csvwrite ('filename', data);

这也会失败并出现 fprintf 错误;如果我在 Octave GUI 内的相同数据集上运行相同的代码,则工作正常。

我在这里不知所措。我更新了 conda、oct2py 和 Octave,结果相同。同样,具有确切数据的确切代码在不到 24 小时前的运行表现与预期一致。

我在 Jupyter Notebook 中使用以下代码进行测试:

%env OCTAVE_EXECUTABLE = F:\Octave\Octave-5.1.0.0\mingw32\bin\octave-cli-5.1.0.exe
import oct2py
from oct2py import octave

octave.addpath('F:\\FinanceServer\\Python\\Secondary Docs\\autotesting\\atOctave_Scripts');
data = x
octave.push('data',data)
octave.eval('CorrCoefScript')
cmat = octave.pull('R')
enter code here

旁注 - 我只在特定的 .ipynb 脚本中遇到此问题。幸运的是,使用 oct2py 的其他脚本似乎没有受到影响。

最佳答案

已修复该问题,但它产生的问题多于答案。我使用数据帧列表按类型循环,这样对于每次迭代 i , x是通过x = dflst[i]生成的。由于我无法理解的原因,随着时间的推移,这个计划失败了。但是,通过将循环写入自定义函数并显式调用该函数中的每个数据帧,如下所示: oct_func(type1df)我看到了预期的行为和预期的结果。但是,我仍然无法使用循环将数据帧传递到 oct_func() 。因此,这是一个创可贴解决方案,可以满足我的目的,但令人沮丧的是无法扩展。

编辑:如果迭代数据帧的字典而不是列表,则循环工作正常。

关于python - Octave isnan : not defined error using oct2py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55305309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com