В чем разница между MATLAB/Octave corr и Python numpy.коррелировать?
Я пытаюсь перенести программу MATLAB / Octave на Python, используя NumPy 1.8.0 и Python 2.7.3. Я использовал этой ссылке как помощь в преобразовании функций MATLAB в методы NumPy с большим успехом, пока я не доберусь до точки, где я хочу вычислить корреляцию между двумя матрицами.
первая Матрица 40000x25 поплавков, вторая матрица 40000x1 ints.  В Октаве я использую оператор corr(a,b) и получите матрицу поплавков 25x1.  Попытка соответствующего метод в NumPy (numpy.correlate(a,b)) выдает ошибку: 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/numpy-1.8.0.dev_1a9aa5a_20130415-py2.7-macosx-10.8-intel.egg/numpy/core/numeric.py", line 751, in correlate
  return multiarray.correlate2(a,v,mode)
ValueError: object too deep for desired array
Я могу заставить его работать, если я изменю код для вычисления корреляции для каждого столбца a, например:
for i in range(25):
    c2[i] = numpy.correlate(a[:,i], b)
однако значения в c2 массив отличается от вывода из Октавы. Октава возвращает матрицу 25x1 поплавков все меньше 1.  Значения, которые я получаю от NumPy, находятся между -270 и 900.  
Я попытался понять, что делают два алгоритма под капюшон, но с треском провалился. Кто-нибудь может указать на мою логическую ошибку?
1 ответов
похоже, что существует numpy.corrcoef который вычисляет коэффициенты корреляции, по желанию. Однако его интерфейс отличается от Октавы / Matlab corr.
прежде всего, по умолчанию функция обрабатывает строки как переменные, а столбцы-как наблюдения. Чтобы имитировать поведение Octave / Matlab, вы можете передать флаг, который отменяет это.
также, по словам ответ на
