[med-svn] [python-mne] 304/376: FIX : some is istead of == and some speed improvement

Yaroslav Halchenko debian at onerussian.com
Fri Nov 27 17:23:10 UTC 2015


This is an automated email from the git hooks/post-receive script.

yoh pushed a commit to annotated tag v0.1
in repository python-mne.

commit 96f01a6aefd756c3992b70607f2f4234a41bbaba
Author: Alexandre Gramfort <alexandre.gramfort at inria.fr>
Date:   Sat Jun 18 12:05:49 2011 -0400

    FIX : some is istead of == and some speed improvement
---
 mne/minimum_norm/inverse.py | 31 +++++++++++++------------------
 mne/stats/permutations.py   |  2 +-
 2 files changed, 14 insertions(+), 19 deletions(-)

diff --git a/mne/minimum_norm/inverse.py b/mne/minimum_norm/inverse.py
index 174ac49..9ccf519 100644
--- a/mne/minimum_norm/inverse.py
+++ b/mne/minimum_norm/inverse.py
@@ -326,32 +326,27 @@ def prepare_inverse_operator(orig, nave, lambda2, dSPM):
     #
     #   Create the whitener
     #
-    inv['whitener'] = np.zeros((inv['noise_cov']['dim'],
-                                inv['noise_cov']['dim']))
     if not inv['noise_cov']['diag']:
+        inv['whitener'] = np.zeros((inv['noise_cov']['dim'],
+                                    inv['noise_cov']['dim']))
         #
         #   Omit the zeroes due to projection
         #
-        nnzero = 0
-        for k in range(ncomp, inv['noise_cov']['dim']):
-            if inv['noise_cov']['eig'][k] > 0:
-                inv['whitener'][k, k] = 1.0 / sqrt(inv['noise_cov']['eig'][k])
-                nnzero += 1
-
+        eig = inv['noise_cov']['eig']
+        nzero = (eig > 0)
+        inv['whitener'][nzero, nzero] = 1.0 / np.sqrt(eig[nzero])
         #
         #   Rows of eigvec are the eigenvectors
         #
         inv['whitener'] = np.dot(inv['whitener'], inv['noise_cov']['eigvec'])
         print ('\tCreated the whitener using a full noise covariance matrix '
               '(%d small eigenvalues omitted)' % (inv['noise_cov']['dim']
-                                                  - nnzero))
+                                                  - np.sum(nzero)))
     else:
         #
         #   No need to omit the zeroes due to projection
         #
-        for k in range(inv['noise_cov']['dim']):
-            inv['whitener'][k, k] = 1.0 / sqrt(inv['noise_cov']['data'][k])
-
+        inv['whitener'] = np.diag(1.0 / np.sqrt(inv['noise_cov']['data'].ravel()))
         print ('\tCreated the whitener using a diagonal noise covariance '
                'matrix (%d small eigenvalues discarded)' % ncomp)
 
@@ -455,7 +450,7 @@ def apply_inverse(evoked, inverse_operator, lambda2, dSPM=True):
         sol = np.dot(inv['eigen_leads']['data'], trans)
     else:
         #
-        #     R^0.5 has to factored in
+        #     R^0.5 has to be factored in
         #
         print '(eigenleads need to be weighted)...',
         sol = np.sqrt(inv['source_cov']['data'])[:, None] * \
@@ -589,7 +584,7 @@ def apply_inverse_raw(raw, inverse_operator, lambda2, dSPM=True,
         sol = np.dot(eigen_leads, trans)
     else:
         #
-        #     R^0.5 has to factored in
+        #     R^0.5 has to be factored in
         #
         print '(eigenleads need to be weighted)...',
         sol = np.sqrt(source_cov) * np.dot(eigen_leads, trans)
@@ -743,7 +738,7 @@ def minimum_norm(evoked, forward, whitener, method='dspm',
     # Initializing.
     n_positions = gain.shape[1] / 3
 
-    if orientation is 'fixed':
+    if orientation == 'fixed':
         n_dip_per_pos = 1
     elif orientation in ['free', 'loose']:
         n_dip_per_pos = 3
@@ -759,12 +754,12 @@ def minimum_norm(evoked, forward, whitener, method='dspm',
         w = w[:, None] * np.ones((1, n_dip_per_pos))
         w = w.ravel()
 
-    if orientation is 'fixed':
+    if orientation == 'fixed':
         print 'Appying fixed dipole orientations.'
         gain = gain * _block_diag(normals.ravel()[None, :], 3).T
-    elif orientation is 'free':
+    elif orientation == 'free':
         print 'Using free dipole orientations. No constraints.'
-    elif orientation is 'loose':
+    elif orientation == 'loose':
         print 'Transforming lead field matrix to cortical coordinate system.'
         gain = _xyz2lf(gain, normals)
         # Getting indices for tangential dipoles: [1, 2, 4, 5]
diff --git a/mne/stats/permutations.py b/mne/stats/permutations.py
index 39e141c..bf9a67c 100644
--- a/mne/stats/permutations.py
+++ b/mne/stats/permutations.py
@@ -115,7 +115,7 @@ def permutation_t_test(X, n_permutations=10000, tail=0, n_jobs=1):
     n_samples, n_tests = X.shape
 
     do_exact = False
-    if n_permutations is 'all' or (n_permutations >= 2 ** n_samples - 1):
+    if (n_permutations == 'all') or (n_permutations >= 2 ** n_samples - 1):
         do_exact = True
         n_permutations = 2 ** n_samples - 1
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/python-mne.git



More information about the debian-med-commit mailing list