Cross-checked and polished remainders of fig_invariance_thresh_lp_species.pdf.
Added misc_functions.py for anything not plot-related.
This commit is contained in:
32
python/misc_functions.py
Normal file
32
python/misc_functions.py
Normal file
@@ -0,0 +1,32 @@
|
||||
import numpy as np
|
||||
|
||||
def shorten_species(name):
|
||||
genus, species = name.split('_')
|
||||
return genus[0] + '. ' + species
|
||||
|
||||
def get_saturation(sigmoid, low=0.05, high=0.95, first=True, last=True,
|
||||
condense=None):
|
||||
if condense == 'norm' and sigmoid.ndim == 2:
|
||||
sigmoid = np.linalg.norm(sigmoid, axis=1)
|
||||
|
||||
min_value = sigmoid[0] if first else sigmoid.min(axis=0)
|
||||
max_value = sigmoid[-1] if last else sigmoid.max(axis=0)
|
||||
|
||||
span = max_value - min_value
|
||||
low_value = min_value + low * span
|
||||
high_value = min_value + high * span
|
||||
|
||||
low_mask = sigmoid >= low_value
|
||||
high_mask = sigmoid >= high_value
|
||||
if sigmoid.ndim == 1:
|
||||
low_ind = np.nonzero(low_mask)[0][0]
|
||||
high_ind = np.nonzero(high_mask)[0][0]
|
||||
elif condense == 'all':
|
||||
low_ind = np.nonzero(low_mask.all(axis=1))[0][0]
|
||||
high_ind = np.nonzero(high_mask.all(axis=1))[0][0]
|
||||
else:
|
||||
low_ind, high_ind = [], []
|
||||
for i in range(sigmoid.shape[1]):
|
||||
low_ind.append(np.nonzero(low_mask[:, i])[0][0])
|
||||
high_ind.append(np.nonzero(high_mask[:, i])[0][0])
|
||||
return low_ind, high_ind
|
||||
Reference in New Issue
Block a user