Skip to content

Commit

Permalink
MNT Use cimport numpy as cnp for sklearn/decomposition (scikit-learn#…
Browse files Browse the repository at this point in the history
  • Loading branch information
RMeli committed May 12, 2022
1 parent 19cefcb commit f09f748
Showing 1 changed file with 14 additions and 14 deletions.
28 changes: 14 additions & 14 deletions sklearn/decomposition/_online_lda_fast.pyx
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
cimport cython
cimport numpy as np
cimport numpy as cnp
import numpy as np

np.import_array()
cnp.import_array()

from libc.math cimport exp, fabs, log
from numpy.math cimport EULER


def mean_change(np.ndarray[ndim=1, dtype=np.float64_t] arr_1,
np.ndarray[ndim=1, dtype=np.float64_t] arr_2):
def mean_change(cnp.ndarray[ndim=1, dtype=cnp.float64_t] arr_1,
cnp.ndarray[ndim=1, dtype=cnp.float64_t] arr_2):
"""Calculate the mean difference between two arrays.
Equivalent to np.abs(arr_1 - arr2).mean().
"""

cdef np.float64_t total, diff
cdef np.npy_intp i, size
cdef cnp.float64_t total, diff
cdef cnp.npy_intp i, size

size = arr_1.shape[0]
total = 0.0
Expand All @@ -27,9 +27,9 @@ def mean_change(np.ndarray[ndim=1, dtype=np.float64_t] arr_1,
return total / size


def _dirichlet_expectation_1d(np.ndarray[ndim=1, dtype=np.float64_t] doc_topic,
def _dirichlet_expectation_1d(cnp.ndarray[ndim=1, dtype=cnp.float64_t] doc_topic,
double doc_topic_prior,
np.ndarray[ndim=1, dtype=np.float64_t] out):
cnp.ndarray[ndim=1, dtype=cnp.float64_t] out):
"""Dirichlet expectation for a single sample:
exp(E[log(theta)]) for theta ~ Dir(doc_topic)
after adding doc_topic_prior to doc_topic, in-place.
Expand All @@ -39,8 +39,8 @@ def _dirichlet_expectation_1d(np.ndarray[ndim=1, dtype=np.float64_t] doc_topic,
out[:] = np.exp(psi(doc_topic) - psi(np.sum(doc_topic)))
"""

cdef np.float64_t dt, psi_total, total
cdef np.npy_intp i, size
cdef cnp.float64_t dt, psi_total, total
cdef cnp.npy_intp i, size

size = doc_topic.shape[0]

Expand All @@ -55,7 +55,7 @@ def _dirichlet_expectation_1d(np.ndarray[ndim=1, dtype=np.float64_t] doc_topic,
out[i] = exp(psi(doc_topic[i]) - psi_total)


def _dirichlet_expectation_2d(np.ndarray[ndim=2, dtype=np.float64_t] arr):
def _dirichlet_expectation_2d(cnp.ndarray[ndim=2, dtype=cnp.float64_t] arr):
"""Dirichlet expectation for multiple samples:
E[log(theta)] for theta ~ Dir(arr).
Expand All @@ -64,9 +64,9 @@ def _dirichlet_expectation_2d(np.ndarray[ndim=2, dtype=np.float64_t] arr):
Note that unlike _dirichlet_expectation_1d, this function doesn't compute
the exp and doesn't add in the prior.
"""
cdef np.float64_t row_total, psi_row_total
cdef np.ndarray[ndim=2, dtype=np.float64_t] d_exp
cdef np.npy_intp i, j, n_rows, n_cols
cdef cnp.float64_t row_total, psi_row_total
cdef cnp.ndarray[ndim=2, dtype=cnp.float64_t] d_exp
cdef cnp.npy_intp i, j, n_rows, n_cols

n_rows = arr.shape[0]
n_cols = arr.shape[1]
Expand Down

0 comments on commit f09f748

Please sign in to comment.