Использование oct2py для вызова corrcoef.m на нескольких (10MM +) размерных фреймах для возврата матриц [R, P] для генерации обучающих наборов для алгоритма ML.Вчера у меня это работало без проблем.Сегодня утром запустил скрипт с вершины, возвращая идентичный набор тестов для передачи в Octave через oct2py.
Меня возвращают:
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.Это математически нормально.
Во-вторых, когда я загружаю набор тестов в Octave через GUI и выполняю те же .m на тех же данных, ошибки не возвращаются, а матрицы [R, P] идентичнысохраненные результаты с прошлой ночи.Я проверил, правильно ли передается матрица var в Octave через oct2py, а Octave получает идентичную матрицу.Однако oct2py больше не может выполнять ANY .m с проверкой nan в исходном коде.Вышеприведенная ошибка возвращается для любого упакованного сценария .mave в Octave, который в любой момент содержит .isnan.
Для s & g я изменил свой .m, чтобы получить матрицу var и записать ее в плоский файл следующим образом:
csvwrite ('filename', data);
Это также не с ошибкой fprintf;если я запускаю один и тот же код в том же наборе данных внутри Octave GUI, он работает нормально.
Я в недоумении.Я обновил conda, oct2py и Octave с теми же результатами.Опять же, точный код с точными данными работал, как и ожидалось, менее чем за 24 часа.
Я использую приведенный ниже код в блокноте Jupyter для проверки:
%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, похоже, не пострадали.