2eding Ответов: 2

Изменено, чтобы предотвратить злоупотребление


def function1(W):
      n = W.shape[0]
      m = W.shape[1]
      keep = []
      for i in range(m):
         mn = W[True - np.isnan(W[:,i]),i].mean()
         W[np.isnan(W[:,i]),i] = mn
         vr = W[:,i].var()
         if vr == 0: continue

         keep.append(i)
         W[:,i] = (W[:,i] - mn) / np.sqrt(vr)

      W = W[:,keep]
      K = matrixMult(W,W.T) * 1.0/float(m)
      return K


Что я уже пробовал:

Я попробовал использовать библиотеку Eigen.
Но все вышло не так, как мне хотелось.
Я хочу использовать библиотеку Eigen.

2 Ответов

Рейтинг:
2

KarstenK

OriginalGriff абсолютно прав, и если вы хотите использовать библиотеку Eigen, то вам следует посетить некоторые из них Эйген библиотека введение а также учебник в конце.

Чем это должно быть проще простого. Но мы ничего не знаем об этой библиотеке и ее использовании.


Рейтинг:
1

OriginalGriff

Автоматическое "преобразование кода" между двумя языками редко бывает хорошей идеей: оно не дает хорошего кода на целевом языке. Особенно если вы хотите, чтобы он работал с определенным библиотечным пакетом, для которого исходный код не был разработан.

Вместо этого используйте исходный код в качестве спецификации и напишите новый код на целевом языке, чтобы соответствовать этой спецификации. Это значит делать четыре вещи:
1) опираясь на исходный код языка.
2) Понимание того, что делает исходный код и как он это делает.
3) изучение языка целевого кода.
4) написание свежего кода для использования выбранной вами библиотеки.

Удачи вам!