In [1]:
import wisps
import splat
import numpy as np
import wisps
import splat
import matplotlib.pyplot as plt
from concurrent.futures import ThreadPoolExecutor, wait , ALL_COMPLETED
from  functools import partial
import pandas as pd

In [2]:
def get_object(filename):
    sp=wisps.Spectrum(name=filename)
    f_test={"f_test": sp.f_test, 'line_chi': sp.line_chi, 'spex_chi': sp.spex_chi, 
            'spt': sp.spectral_type}
    res_dict= {**sp.snr, **sp.indices, **f_test}
    return res_dict

def make_data(spectranames, **kwargs):
    """
    measure parameters for a bunch of spectra
    """
    results=[]
    iterables=([spectranames])
    method=partial(get_object)
    with ThreadPoolExecutor(max_workers=100) as executor:
        futures=list(executor.map( method, *iterables, timeout=None, chunksize=10))

    results=[x for x in futures]

    return pd.DataFrame.from_records(results)

In [3]:
#important=
pred_df=wisps.datasets['stars']
pred_df=pred_df[pred_df.snr2>3.]

In [4]:
d=make_data(pred_df['grism_id'].values[:10])

In [9]:
%prun s=wisps.Spectrum(filename='par321-00019')


 
         921747 function calls (863411 primitive calls) in 1.397 seconds

   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        4    0.211    0.053    0.286    0.071 data.py:110(get_readable_fileobj)
       32    0.096    0.003    0.926    0.029 indices.py:67(__measure_index)
     7708    0.071    0.000    0.567    0.000 function_base.py:3508(_median)
     7708    0.065    0.000    0.205    0.000 utils.py:1142(_median_nancheck)
        2    0.065    0.033    0.065    0.033 {method 'close' of '_io.FileIO' objects}
     7708    0.052    0.000    0.052    0.000 {method 'partition' of 'numpy.ndarray' objects}
     9116    0.047    0.000    0.047    0.000 {method 'reduce' of 'numpy.ufunc' objects}
51058/9638    0.041    0.000    0.792    0.000 {built-in method numpy.core._multiarray_umath.implement_array_function}
     7600    0.041    0.000    0.041    0.000 {method 'normal' of 'numpy.random.mtrand.RandomState' objects}
     7720    0.040    0.000    0.107    0.000 _methods.py:134(_mean)
    15416    0.040    0.000    0.059    0.000 numeric.py:1273(normalize_axis_tuple)
     7708    0.039    0.000    0.119    0.000 numeric.py:1336(moveaxis)
15404/7708    0.030    0.000    0.717    0.000 function_base.py:3359(_ureduce)
        2    0.028    0.014    0.028    0.014 {method 'read' of '_io.TextIOWrapper' objects}
     7696    0.024    0.000    0.056    0.000 nanfunctions.py:143(_remove_nan_1d)
    31564    0.023    0.000    0.034    0.000 numerictypes.py:293(issubclass_)
    50646    0.023    0.000    0.023    0.000 {built-in method numpy.array}
    15782    0.021    0.000    0.057    0.000 numerictypes.py:365(issubdtype)
     7696    0.018    0.000    0.739    0.000 nanfunctions.py:1023(nanmedian)
     7696    0.017    0.000    0.682    0.000 nanfunctions.py:961(_nanmedian1d)
    65167    0.016    0.000    0.016    0.000 {built-in method builtins.issubclass}
     7716    0.015    0.000    0.122    0.000 fromnumeric.py:3153(mean)
    47114    0.015    0.000    0.032    0.000 _asarray.py:88(asanyarray)
     7708    0.011    0.000    0.011    0.000 {method 'flatten' of 'numpy.ndarray' objects}
     7708    0.011    0.000    0.079    0.000 fromnumeric.py:657(partition)
    34046    0.011    0.000    0.011    0.000 {built-in method builtins.isinstance}
     7720    0.009    0.000    0.013    0.000 _methods.py:50(_count_reduce_items)
 8399/439    0.009    0.000    0.032    0.000 copy.py:132(deepcopy)
        2    0.009    0.005    0.009    0.005 {method 'read' of '_io.FileIO' objects}
     7708    0.009    0.000    0.598    0.000 function_base.py:3419(median)
     7696    0.007    0.000    0.694    0.000 nanfunctions.py:974(_nanmedian)
     7696    0.007    0.000    0.754    0.000 <__array_function__ internals>:2(nanmedian)
    15416    0.007    0.000    0.013    0.000 numeric.py:1323(<listcomp>)
     7714    0.007    0.000    0.007    0.000 {built-in method builtins.sorted}
     7716    0.007    0.000    0.137    0.000 <__array_function__ internals>:2(mean)
     8458    0.007    0.000    0.018    0.000 fromnumeric.py:55(_wrapfunc)
     7966    0.007    0.000    0.033    0.000 <__array_function__ internals>:2(nonzero)
     7708    0.007    0.000    0.133    0.000 <__array_function__ internals>:2(moveaxis)
52428/52400    0.007    0.000    0.007    0.000 {built-in method builtins.len}
     7966    0.006    0.000    0.006    0.000 {method 'nonzero' of 'numpy.ndarray' objects}
     7708    0.006    0.000    0.611    0.000 <__array_function__ internals>:2(median)
     7708    0.006    0.000    0.006    0.000 {method 'transpose' of 'numpy.ndarray' objects}
     7708    0.006    0.000    0.092    0.000 <__array_function__ internals>:2(partition)
    15484    0.006    0.000    0.006    0.000 {built-in method numpy.core._multiarray_umath.normalize_axis_index}
     8534    0.006    0.000    0.006    0.000 {method 'ravel' of 'numpy.ndarray' objects}
    34914    0.005    0.000    0.005    0.000 {method 'get' of 'dict' objects}
     7966    0.005    0.000    0.020    0.000 fromnumeric.py:1759(nonzero)
13755/13659    0.005    0.000    0.007    0.000 {built-in method builtins.getattr}
    10316    0.005    0.000    0.005    0.000 {method 'match' of 're.Pattern' objects}
     7938    0.004    0.000    0.007    0.000 core.py:6251(isMaskedArray)
     9412    0.004    0.000    0.004    0.000 {built-in method builtins.hasattr}
      506    0.004    0.000    0.010    0.000 core.py:2085(_expand_and_gather)
     7708    0.003    0.000    0.003    0.000 {method 'insert' of 'list' objects}
     1152    0.003    0.000    0.011    0.000 fromnumeric.py:73(_wrapreduction)
    13733    0.003    0.000    0.003    0.000 {method 'append' of 'list' objects}
       64    0.003    0.000    0.019    0.000 _distn_infrastructure.py:1694(pdf)
  328/217    0.003    0.000    0.028    0.000 copy.py:236(_deepcopy_dict)
       74    0.003    0.000    0.007    0.000 interpolate.py:587(_call_linear)
      490    0.003    0.000    0.007    0.000 nanfunctions.py:70(_replace_nan)
        2    0.002    0.001    0.002    0.001 {built-in method posix.stat}
    15416    0.002    0.000    0.002    0.000 {built-in method _operator.index}
     7708    0.002    0.000    0.002    0.000 numeric.py:1399(<listcomp>)
       64    0.002    0.000    0.002    0.000 _continuous_distns.py:1677(_logpdf)
      230    0.002    0.000    0.003    0.000 interpolate.py:671(_check_bounds)
     1212    0.002    0.000    0.008    0.000 quantity.py:535(_new_view)
        6    0.002    0.000    0.036    0.006 core.py:306(__init__)
      584    0.002    0.000    0.004    0.000 header.py:1161(append)
     2748    0.002    0.000    0.002    0.000 quantity.py:394(__array_finalize__)
     1152    0.002    0.000    0.002    0.000 fromnumeric.py:74(<dictcomp>)
       64    0.002    0.000    0.008    0.000 spectrum_tools.py:468(compute_chi_square)
      230    0.002    0.000    0.004    0.000 _util.py:193(_asarray_validated)
      632    0.002    0.000    0.005    0.000 copy.py:66(copy)
       22    0.002    0.000    0.006    0.000 core.py:713(<listcomp>)
     7696    0.002    0.000    0.002    0.000 nanfunctions.py:1018(_nanmedian_dispatcher)
     7966    0.002    0.000    0.002    0.000 fromnumeric.py:1755(_nonzero_dispatcher)
     7716    0.001    0.000    0.001    0.000 fromnumeric.py:3149(_mean_dispatcher)
      230    0.001    0.000    0.014    0.000 interpolate.py:656(_evaluate)
      570    0.001    0.000    0.012    0.000 core.py:2010(__init__)
   618/15    0.001    0.000    0.026    0.002 copy.py:268(_reconstruct)
     5632    0.001    0.000    0.002    0.000 core.py:710(<genexpr>)
     7708    0.001    0.000    0.001    0.000 function_base.py:3414(_median_dispatcher)
     7708    0.001    0.000    0.001    0.000 fromnumeric.py:653(_partition_dispatcher)
     7708    0.001    0.000    0.001    0.000 numeric.py:1332(_moveaxis_dispatcher)
       68    0.001    0.000    0.006    0.000 interpolate.py:427(__init__)
       36    0.001    0.000    0.001    0.000 {method 'splitlines' of 'str' objects}
     1822    0.001    0.000    0.002    0.000 {method 'view' of 'numpy.ndarray' objects}
       66    0.001    0.000    0.004    0.000 utilities.py:1315(typeToNum)
       70    0.001    0.000    0.008    0.000 _distn_infrastructure.py:545(<listcomp>)
     1410    0.001    0.000    0.001    0.000 copy.py:252(_keep_alive)
     1294    0.001    0.000    0.002    0.000 core.py:2086(add_unit)
        2    0.001    0.001    0.057    0.028 spectrum_tools.py:473(classify)
  670/430    0.001    0.000    0.007    0.000 core.py:2132(decompose)
      140    0.001    0.000    0.001    0.000 numerictypes.py:578(_can_coerce_all)
      822    0.001    0.000    0.001    0.000 {method 'search' of 're.Pattern' objects}
       32    0.001    0.000    0.006    0.000 nanfunctions.py:1422(nanvar)
        2    0.001    0.000    0.026    0.013 ui.py:334(_guess)
        6    0.001    0.000    0.001    0.000 core.py:490(<listcomp>)
    11061    0.001    0.000    0.001    0.000 {built-in method builtins.id}
      170    0.001    0.000    0.009    0.000 nanfunctions.py:229(nanmin)
      370    0.001    0.000    0.002    0.000 {method 'any' of 'numpy.generic' objects}
        2    0.001    0.000    0.001    0.000 {method 'read' of 'astropy.io.ascii.cparser.CParser' objects}
     6716    0.001    0.000    0.001    0.000 {method 'strip' of 'str' objects}
      270    0.001    0.000    0.006    0.000 function_base.py:1628(extract)
       12    0.001    0.000    0.001    0.000 utilities.py:449(checkDict)
       66    0.001    0.000    0.001    0.000 _distn_infrastructure.py:862(_argcheck)
      538    0.001    0.000    0.002    0.000 quantity.py:679(to_value)
      152    0.001    0.000    0.002    0.000 _methods.py:63(_clip_dep_is_scalar_nan)
     1128    0.001    0.000    0.007    0.000 quantity.py:1032(quantity_iter)
      102    0.001    0.000    0.006    0.000 nanfunctions.py:344(nanmax)
       66    0.001    0.000    0.004    0.000 tools.py:117(make_spt_number)
      116    0.001    0.000    0.005    0.000 quantity.py:423(__array_ufunc__)
      230    0.001    0.000    0.020    0.000 polyint.py:62(__call__)
       64    0.001    0.000    0.002    0.000 nanfunctions.py:184(_divide_by_count)
       12    0.001    0.000    0.015    0.001 equivalencies.py:139(spectral_density)
       18    0.001    0.000    0.001    0.000 core.py:64(_normalize_equivalencies)
  272/260    0.001    0.000    0.009    0.000 core.py:647(__div__)
       74    0.001    0.000    0.001    0.000 {method 'searchsorted' of 'numpy.ndarray' objects}
      338    0.001    0.000    0.001    0.000 {method 'take' of 'numpy.ndarray' objects}
      538    0.001    0.000    0.002    0.000 {method 'sort' of 'list' objects}
      568    0.001    0.000    0.001    0.000 {method 'reshape' of 'numpy.ndarray' objects}
        2    0.001    0.000    0.002    0.001 daophot.py:276(process_lines)
       66    0.001    0.000    0.001    0.000 utilities.py:49(isNumber)
       76    0.001    0.000    0.001    0.000 _methods.py:78(_clip_dep_invoke_with_casting)
      276    0.001    0.000    0.001    0.000 {method 'copy' of 'numpy.ndarray' objects}
      116    0.001    0.000    0.001    0.000 {function Quantity.__array_ufunc__ at 0x116f2fa60}
     1536    0.001    0.000    0.001    0.000 quantity.py:600(_set_unit)
        2    0.001    0.000    0.008    0.004 core.py:5453(<listcomp>)
     1574    0.001    0.000    0.002    0.000 _asarray.py:16(asarray)
      378    0.001    0.000    0.001    0.000 {method '__deepcopy__' of 'numpy.generic' objects}
      524    0.001    0.000    0.002    0.000 <__array_function__ internals>:2(copyto)
        2    0.001    0.000    0.938    0.469 indices.py:19(measure_indices)
      308    0.001    0.000    0.003    0.000 fromnumeric.py:2045(sum)
      280    0.001    0.000    0.002    0.000 copy.py:219(_deepcopy_tuple)
      116    0.001    0.000    0.002    0.000 converters.py:125(converters_and_unit)
     6584    0.001    0.000    0.001    0.000 copy.py:190(_deepcopy_atomic)
      154    0.001    0.000    0.001    0.000 {built-in method numpy.arange}
      540    0.001    0.000    0.002    0.000 fromnumeric.py:1648(ravel)
      660    0.001    0.000    0.002    0.000 core.py:1766(__call__)
       70    0.001    0.000    0.010    0.000 _distn_infrastructure.py:520(argsreduce)
      156    0.001    0.000    0.001    0.000 {built-in method numpy.core._multiarray_umath.interp}
  298/232    0.000    0.000    0.002    0.000 {method 'format' of 'str' objects}
      636    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
      280    0.000    0.000    0.005    0.000 core.py:2151(is_unity)
     1098    0.000    0.000    0.001    0.000 core.py:2120(<lambda>)
        2    0.000    0.000    0.029    0.015 core.py:5374(compareSpectra)
       68    0.000    0.000    0.000    0.000 {method 'argsort' of 'numpy.ndarray' objects}
      230    0.000    0.000    0.004    0.000 polyint.py:88(_prepare_x)
       12    0.000    0.000    0.002    0.000 core.py:549(<listcomp>)
      618    0.000    0.000    0.000    0.000 {method '__reduce_ex__' of 'object' objects}
      156    0.000    0.000    0.002    0.000 function_base.py:1282(interp)
      970    0.000    0.000    0.000    0.000 utils.py:251(resolve_fractions)
      584    0.000    0.000    0.001    0.000 card.py:568(normalize_keyword)
      212    0.000    0.000    0.006    0.000 nanfunctions.py:558(nansum)
      348    0.000    0.000    0.004    0.000 fromnumeric.py:2189(any)
      218    0.000    0.000    0.001    0.000 re.py:271(_compile)
       40    0.000    0.000    0.002    0.000 core.py:1385(_get_reader)
     2136    0.000    0.000    0.000    0.000 {method 'items' of 'dict' objects}
       70    0.000    0.000    0.001    0.000 shape_base.py:24(atleast_1d)
        2    0.000    0.000    0.105    0.053 spectrum_tools.py:438(f_test)
      249    0.000    0.000    0.002    0.000 copy.py:210(_deepcopy_list)
       68    0.000    0.000    0.001    0.000 interpolate.py:549(fill_value)
      308    0.000    0.000    0.004    0.000 <__array_function__ internals>:2(sum)
     1684    0.000    0.000    0.000    0.000 core.py:734(__hash__)
       86    0.000    0.000    0.004    0.000 core.py:922(_to)
     1398    0.000    0.000    0.000    0.000 core.py:1957(__hash__)
     1482    0.000    0.000    0.000    0.000 quantity.py:736(unit)
        4    0.000    0.000    0.010    0.003 header.py:78(__init__)
      540    0.000    0.000    0.003    0.000 <__array_function__ internals>:2(ravel)
        2    0.000    0.000    0.001    0.000 core.py:1341(process_lines)
       18    0.000    0.000    0.000    0.000 {method 'read_header' of 'astropy.io.ascii.cparser.CParser' objects}
      348    0.000    0.000    0.005    0.000 <__array_function__ internals>:2(any)
      230    0.000    0.000    0.001    0.000 polyint.py:94(_finish_y)
        2    0.000    0.000    0.020    0.010 utilities.py:2135(<listcomp>)
      152    0.000    0.000    0.001    0.000 fromnumeric.py:2986(ndim)
       76    0.000    0.000    0.003    0.000 _methods.py:97(_clip)
      430    0.000    0.000    0.000    0.000 utils.py:197(validate_power)
       68    0.000    0.000    0.001    0.000 polyint.py:113(_set_yi)
      588    0.000    0.000    0.005    0.000 header.py:827(<genexpr>)
      616    0.000    0.000    0.000    0.000 copyreg.py:87(__newobj__)
      570    0.000    0.000    0.001    0.000 utils.py:173(sanitize_scale)
       40    0.000    0.000    0.001    0.000 quantity.py:272(__new__)
     1256    0.000    0.000    0.000    0.000 core.py:1574(name)
      128    0.000    0.000    0.001    0.000 _ufunc_config.py:39(seterr)
      338    0.000    0.000    0.001    0.000 fromnumeric.py:97(take)
       32    0.000    0.000    0.006    0.000 nanfunctions.py:1570(nanstd)
      338    0.000    0.000    0.002    0.000 <__array_function__ internals>:2(take)
       16    0.000    0.000    0.004    0.000 fastbasic.py:65(read)
      506    0.000    0.000    0.000    0.000 core.py:2119(<listcomp>)
        2    0.000    0.000    1.393    0.697 spectrum_tools.py:297(filepath)
       18    0.000    0.000    0.002    0.000 core.py:849(convert)
       18    0.000    0.000    0.001    0.000 equivalencies.py:104(spectral)
      156    0.000    0.000    0.002    0.000 interpolate.py:583(_call_linear_np)
      128    0.000    0.000    0.000    0.000 _ufunc_config.py:139(geterr)
      608    0.000    0.000    0.000    0.000 utils.py:163(is_effectively_unity)
      584    0.000    0.000    0.000    0.000 card.py:478(field_specifier)
       32    0.000    0.000    0.001    0.000 generic.py:499(_format_unit_list)
      498    0.000    0.000    0.002    0.000 _methods.py:44(_any)
      270    0.000    0.000    0.007    0.000 <__array_function__ internals>:2(extract)
     1168    0.000    0.000    0.000    0.000 card.py:213(keyword)
       64    0.000    0.000    0.000    0.000 _distn_infrastructure.py:895(_support_mask)
      248    0.000    0.000    0.002    0.000 <__array_function__ internals>:2(all)
       92    0.000    0.000    0.004    0.000 core.py:685(__mul__)
      212    0.000    0.000    0.006    0.000 <__array_function__ internals>:2(nansum)
      150    0.000    0.000    0.000    0.000 {built-in method numpy.zeros}
      248    0.000    0.000    0.002    0.000 fromnumeric.py:2277(all)
      158    0.000    0.000    0.003    0.000 fromnumeric.py:2629(amin)
      280    0.000    0.000    0.002    0.000 copy.py:220(<listcomp>)
      128    0.000    0.000    0.000    0.000 {method 'findall' of 're.Pattern' objects}
  330/306    0.000    0.000    0.000    0.000 core.py:1951(decompose)
       12    0.000    0.000    0.004    0.000 core.py:988(computeSN)
  200/140    0.000    0.000    0.000    0.000 column.py:849(__setattr__)
       24    0.000    0.000    0.014    0.001 core.py:1131(read)
      832    0.000    0.000    0.000    0.000 {method 'find' of 'str' objects}
       42    0.000    0.000    0.001    0.000 generic.py:27(_to_string)
      776    0.000    0.000    0.000    0.000 core.py:2071(bases)
      980    0.000    0.000    0.000    0.000 numerictypes.py:587(<listcomp>)
       90    0.000    0.000    0.001    0.000 fromnumeric.py:2504(amax)
      168    0.000    0.000    0.001    0.000 core.py:2023(<listcomp>)
       68    0.000    0.000    0.001    0.000 polyint.py:105(_reshape_yi)
     1564    0.000    0.000    0.000    0.000 {method 'lower' of 'str' objects}
       68    0.000    0.000    0.000    0.000 interpolate.py:316(_check_broadcast_up_to)
       64    0.000    0.000    0.001    0.000 typeof.py:24(typeof)
        4    0.000    0.000    0.001    0.000 _distn_infrastructure.py:1862(sf)
      170    0.000    0.000    0.010    0.000 <__array_function__ internals>:2(nanmin)
      270    0.000    0.000    0.000    0.000 _collections_abc.py:879(__iter__)
      156    0.000    0.000    0.000    0.000 type_check.py:282(iscomplexobj)
       28    0.000    0.000    0.001    0.000 core.py:703(__rmul__)
      230    0.000    0.000    0.000    0.000 base.py:1189(isspmatrix)
     1086    0.000    0.000    0.000    0.000 {method 'startswith' of 'str' objects}
        2    0.000    0.000    0.341    0.170 ui.py:204(read)
      280    0.000    0.000    0.001    0.000 <frozen importlib._bootstrap>:1009(_handle_fromlist)
        4    0.000    0.000    0.003    0.001 core.py:1903(normalize)
       24    0.000    0.000    0.000    0.000 core.py:1114(__init__)
      158    0.000    0.000    0.003    0.000 <__array_function__ internals>:2(amin)
       70    0.000    0.000    0.002    0.000 numerictypes.py:602(find_common_type)
       82    0.000    0.000    0.001    0.000 core.py:643(__pow__)
      506    0.000    0.000    0.000    0.000 core.py:2122(<listcomp>)
      156    0.000    0.000    0.001    0.000 <__array_function__ internals>:2(iscomplexobj)
      156    0.000    0.000    0.002    0.000 <__array_function__ internals>:2(interp)
        2    0.000    0.000    0.020    0.010 utilities.py:2080(weightedMeanVar)
       64    0.000    0.000    0.000    0.000 functools.py:768(dispatch)
       64    0.000    0.000    0.002    0.000 _continuous_distns.py:1671(_pdf)
       68    0.000    0.000    0.001    0.000 polyint.py:133(_set_dtype)
       12    0.000    0.000    0.001    0.000 equivalencies.py:184(converter)
        4    0.000    0.000    0.000    0.000 latex.py:53(find_latex_line)
        2    0.000    0.000    0.000    0.000 ipac.py:83(process_lines)
      102    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(where)
        4    0.000    0.000    0.002    0.000 _stats_mstats_common.py:15(linregress)
       86    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
       74    0.000    0.000    0.001    0.000 fromnumeric.py:1229(searchsorted)
       24    0.000    0.000    0.002    0.000 quantity.py:949(__truediv__)
       64    0.000    0.000    0.001    0.000 dispatcher.py:521(typeof_pyval)
      506    0.000    0.000    0.000    0.000 core.py:2123(<listcomp>)
      128    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:416(parent)
        2    0.000    0.000    0.000    0.000 ui.py:498(_get_guess_kwargs_list)
      754    0.000    0.000    0.000    0.000 {method 'keys' of 'dict' objects}
        4    0.000    0.000    0.002    0.001 spectrum_tools.py:421(fit_a_line)
      102    0.000    0.000    0.007    0.000 <__array_function__ internals>:2(nanmax)
      810    0.000    0.000    0.000    0.000 {method 'groups' of 're.Match' objects}
      336    0.000    0.000    0.000    0.000 utilities.py:484(<listcomp>)
      124    0.000    0.000    0.000    0.000 {built-in method builtins.any}
     1098    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
       82    0.000    0.000    0.000    0.000 {built-in method numpy.core._multiarray_umath._insert}
        4    0.000    0.000    0.001    0.000 function_base.py:2245(cov)
      152    0.000    0.000    0.001    0.000 <__array_function__ internals>:2(ndim)
       10    0.000    0.000    0.001    0.000 fastbasic.py:275(_read_header)
      302    0.000    0.000    0.001    0.000 daophot.py:241(<genexpr>)
       16    0.000    0.000    0.001    0.000 fastbasic.py:28(__init__)
        4    0.000    0.000    0.000    0.000 latex.py:81(<listcomp>)
       90    0.000    0.000    0.002    0.000 <__array_function__ internals>:2(amax)
       68    0.000    0.000    0.001    0.000 polyint.py:55(__init__)
      686    0.000    0.000    0.000    0.000 {built-in method __new__ of type object at 0x10dd88778}
       64    0.000    0.000    0.000    0.000 weakref.py:395(__getitem__)
      152    0.000    0.000    0.000    0.000 _methods.py:73(_clip_dep_is_byte_swapped)
       22    0.000    0.000    0.008    0.000 quantity.py:651(to)
       68    0.000    0.000    0.000    0.000 numeric.py:1211(rollaxis)
       26    0.000    0.000    0.000    0.000 core.py:1043(_is_number)
      588    0.000    0.000    0.000    0.000 header.py:327(_modified)
       32    0.000    0.000    0.000    0.000 fromnumeric.py:3028(size)
      152    0.000    0.000    0.000    0.000 core.py:1547(get_format_name)
        1    0.000    0.000    1.397    1.397 <string>:1(<module>)
       20    0.000    0.000    0.001    0.000 quantity.py:922(__mul__)
       55    0.000    0.000    0.000    0.000 {method '__deepcopy__' of 'numpy.ndarray' objects}
      128    0.000    0.000    0.001    0.000 re.py:215(findall)
       22    0.000    0.000    0.005    0.000 core.py:892(_get_converter)
      266    0.000    0.000    0.001    0.000 quantity.py:621(__deepcopy__)
        6    0.000    0.000    0.036    0.006 spectrum_tools.py:198(splat_spectrum)
       82    0.000    0.000    0.000    0.000 function_base.py:1684(place)
       76    0.000    0.000    0.004    0.000 {method 'clip' of 'numpy.ndarray' objects}
        2    0.000    0.000    0.000    0.000 shape_base.py:82(atleast_2d)
      524    0.000    0.000    0.000    0.000 multiarray.py:1043(copyto)
       22    0.000    0.000    0.007    0.000 quantity.py:644(_to_value)
      510    0.000    0.000    0.000    0.000 {method 'endswith' of 'str' objects}
       64    0.000    0.000    0.000    0.000 functools.py:822(wrapper)
       64    0.000    0.000    0.000    0.000 _ufunc_config.py:437(__init__)
      128    0.000    0.000    0.000    0.000 {method 'rpartition' of 'str' objects}
       42    0.000    0.000    0.000    0.000 utilities.py:76(isUnit)
      128    0.000    0.000    0.000    0.000 {built-in method numpy.seterrobj}
        2    0.000    0.000    0.001    0.000 _distn_infrastructure.py:1777(cdf)
        2    0.000    0.000    0.000    0.000 cds.py:172(<listcomp>)
       68    0.000    0.000    0.001    0.000 <__array_function__ internals>:2(argsort)
       74    0.000    0.000    0.001    0.000 <__array_function__ internals>:2(searchsorted)
      128    0.000    0.000    0.001    0.000 {method 'any' of 'numpy.ndarray' objects}
      112    0.000    0.000    0.000    0.000 converters.py:163(<listcomp>)
       40    0.000    0.000    0.002    0.000 ui.py:113(get_reader)
        2    0.000    0.000    0.001    0.001 spectrum_tools.py:230(_compute_snr)
       68    0.000    0.000    0.001    0.000 fromnumeric.py:978(argsort)
        1    0.000    0.000    1.397    1.397 spectrum_tools.py:87(__init__)
       64    0.000    0.000    0.000    0.000 {built-in method builtins.all}
      540    0.000    0.000    0.000    0.000 fromnumeric.py:1644(_ravel_dispatcher)
       64    0.000    0.000    0.000    0.000 core.py:2041(<listcomp>)
       24    0.000    0.000    0.007    0.000 core.py:717(get_data_lines)
      171    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
        2    0.000    0.000    0.000    0.000 core.py:5551(generateMask)
       14    0.000    0.000    0.000    0.000 fastbasic.py:143(check_header)
       82    0.000    0.000    0.001    0.000 <__array_function__ internals>:2(place)
      152    0.000    0.000    0.000    0.000 generic.py:495(_get_unit_name)
       64    0.000    0.000    0.001    0.000 _ufunc_config.py:441(__enter__)
       70    0.000    0.000    0.001    0.000 <__array_function__ internals>:2(atleast_1d)
       48    0.000    0.000    0.000    0.000 {built-in method _abc._abc_instancecheck}
      256    0.000    0.000    0.000    0.000 {built-in method numpy.geterrobj}
    60/40    0.000    0.000    0.000    0.000 data_info.py:317(__setattr__)
       64    0.000    0.000    0.000    0.000 _ufunc_config.py:446(__exit__)
       68    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(rollaxis)
      200    0.000    0.000    0.000    0.000 {built-in method builtins.setattr}
       12    0.000    0.000    0.000    0.000 configuration.py:375(__call__)
      372    0.000    0.000    0.000    0.000 core.py:2064(scale)
       70    0.000    0.000    0.000    0.000 numerictypes.py:654(<listcomp>)
      102    0.000    0.000    0.000    0.000 core.py:1954(is_unity)
      264    0.000    0.000    0.000    0.000 converters.py:168(<genexpr>)
      158    0.000    0.000    0.000    0.000 {method 'replace' of 'str' objects}
      350    0.000    0.000    0.000    0.000 core.py:2078(powers)
      270    0.000    0.000    0.000    0.000 __init__.py:1084(__getitem__)
       64    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(putmask)
       12    0.000    0.000    0.002    0.000 constant.py:188(_instance_or_super)
       10    0.000    0.000    0.001    0.000 column.py:182(__new__)
        2    0.000    0.000    0.001    0.000 daophot.py:228(search_multiline)
       16    0.000    0.000    0.000    0.000 utils.py:14(get_grouped_by_powers)
        4    0.000    0.000    0.000    0.000 ui.py:53(_probably_html)
      418    0.000    0.000    0.000    0.000 {method 'upper' of 'str' objects}
       24    0.000    0.000    0.000    0.000 core.py:686(__init__)
       22    0.000    0.000    0.006    0.000 core.py:695(process_lines)
       38    0.000    0.000    0.001    0.000 core.py:528(__repr__)
       22    0.000    0.000    0.007    0.000 core.py:955(to)
       46    0.000    0.000    0.000    0.000 quantity.py:477(_result_as_quantity)
      146    0.000    0.000    0.000    0.000 {method 'count' of 'str' objects}
       70    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(shape)
        4    0.000    0.000    0.000    0.000 stride_tricks.py:116(_broadcast_to)
        4    0.000    0.000    0.000    0.000 header.py:797(clear)
      132    0.000    0.000    0.000    0.000 interpolate.py:333(_do_extrapolate)
        2    0.000    0.000    0.000    0.000 converters.py:108(can_have_arbitrary_unit)
      338    0.000    0.000    0.000    0.000 fromnumeric.py:93(_take_dispatcher)
       24    0.000    0.000    0.000    0.000 configuration.py:476(get_config)
       28    0.000    0.000    0.000    0.000 quantity.py:1075(__len__)
        2    0.000    0.000    0.001    0.000 core.py:2678(trim)
       12    0.000    0.000    0.002    0.000 core.py:541(update_meta)
      194    0.000    0.000    0.000    0.000 {method 'pop' of 'dict' objects}
      348    0.000    0.000    0.000    0.000 fromnumeric.py:2185(_any_dispatcher)
       18    0.000    0.000    0.000    0.000 generic.py:466(parse)
       12    0.000    0.000    0.002    0.000 quantity.py:764(cgs)
        2    0.000    0.000    0.001    0.001 table.py:794(_init_from_list)
       32    0.000    0.000    0.000    0.000 nanfunctions.py:114(_copyto)
       20    0.000    0.000    0.002    0.000 core.py:843(_apply_equivalencies)
       18    0.000    0.000    0.000    0.000 generic.py:451(_parse_unit)
       22    0.000    0.000    0.000    0.000 core.py:2319(_condition_arg)
       40    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(can_cast)
       30    0.000    0.000    0.000    0.000 equivalencies.py:40(__init__)
       14    0.000    0.000    0.000    0.000 core.py:420(__call__)
       64    0.000    0.000    0.000    0.000 {method 'all' of 'numpy.ndarray' objects}
      114    0.000    0.000    0.000    0.000 core.py:1672(decompose)
       24    0.000    0.000    0.000    0.000 {method 'setup_tokenizer' of 'astropy.io.ascii.cparser.CParser' objects}
      510    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
      514    0.000    0.000    0.000    0.000 {built-in method builtins.callable}
       32    0.000    0.000    0.006    0.000 <__array_function__ internals>:2(nanvar)
       32    0.000    0.000    0.006    0.000 <__array_function__ internals>:2(nanstd)
       16    0.000    0.000    0.286    0.018 {built-in method builtins.next}
      248    0.000    0.000    0.000    0.000 fromnumeric.py:2273(_all_dispatcher)
       60    0.000    0.000    0.000    0.000 decorators.py:738(__get__)
       16    0.000    0.000    0.000    0.000 utils.py:113(format_power)
        2    0.000    0.000    0.000    0.000 indices.py:51(<dictcomp>)
      308    0.000    0.000    0.000    0.000 fromnumeric.py:2040(_sum_dispatcher)
       12    0.000    0.000    0.000    0.000 enum.py:830(__or__)
      270    0.000    0.000    0.000    0.000 function_base.py:1624(_extract_dispatcher)
       64    0.000    0.000    0.000    0.000 <string>:1(__new__)
        2    0.000    0.000    0.000    0.000 fastbasic.py:317(_read_header)
        4    0.000    0.000    0.000    0.000 _continuous_distns.py:5264(_sf)
        1    0.000    0.000    1.397    1.397 {built-in method builtins.exec}
       64    0.000    0.000    0.000    0.000 generic.py:502(<lambda>)
       24    0.000    0.000    0.004    0.000 core.py:280(get_lines)
        2    0.000    0.000    0.000    0.000 {built-in method builtins.sum}
       18    0.000    0.000    0.002    0.000 core.py:616(_normalize_equivalencies)
        4    0.000    0.000    0.000    0.000 core.py:901(<lambda>)
      510    0.000    0.000    0.000    0.000 core.py:512(<genexpr>)
       20    0.000    0.000    0.000    0.000 core.py:222(equivalencies)
        4    0.000    0.000    0.000    0.000 fixedwidth.py:83(get_cols)
      212    0.000    0.000    0.000    0.000 nanfunctions.py:554(_nansum_dispatcher)
       36    0.000    0.000    0.000    0.000 configobj.py:550(__getitem__)
       24    0.000    0.000    0.000    0.000 helpers.py:217(helper_division)
       12    0.000    0.000    0.000    0.000 {method 'sub' of 're.Pattern' objects}
       64    0.000    0.000    0.000    0.000 typeof.py:140(_typeof_str)
      156    0.000    0.000    0.000    0.000 function_base.py:1278(_interp_dispatcher)
       16    0.000    0.000    0.001    0.000 core.py:2054(__repr__)
       50    0.000    0.000    0.000    0.000 contextlib.py:358(__exit__)
       42    0.000    0.000    0.001    0.000 generic.py:517(to_string)
        4    0.000    0.000    0.001    0.000 core.py:2240(scale)
        2    0.000    0.000    0.002    0.001 table.py:391(__init__)
       32    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(size)
      134    0.000    0.000    0.000    0.000 {method 'item' of 'numpy.ndarray' objects}
       20    0.000    0.000    0.000    0.000 misc.py:34(isiterable)
       46    0.000    0.000    0.000    0.000 quantity.py:517(__quantity_subclass__)
       52    0.000    0.000    0.001    0.000 core.py:501(_get_line_index)
        2    0.000    0.000    0.000    0.000 table.py:879(_init_from_cols)
       76    0.000    0.000    0.000    0.000 _distn_infrastructure.py:874(_get_support)
        1    0.000    0.000    0.674    0.674 spectrum_tools.py:377(filename)
       36    0.000    0.000    0.000    0.000 {method 'squeeze' of 'numpy.ndarray' objects}
      170    0.000    0.000    0.000    0.000 nanfunctions.py:225(_nanmin_dispatcher)
       24    0.000    0.000    0.000    0.000 enum.py:284(__call__)
       70    0.000    0.000    0.000    0.000 fromnumeric.py:1856(shape)
       24    0.000    0.000    0.000    0.000 core.py:1407(<genexpr>)
       48    0.000    0.000    0.000    0.000 abc.py:137(__instancecheck__)
        4    0.000    0.000    0.000    0.000 {method 'round' of 'numpy.generic' objects}
      152    0.000    0.000    0.000    0.000 fromnumeric.py:2982(_ndim_dispatcher)
        4    0.000    0.000    0.000    0.000 function_base.py:293(average)
      164    0.000    0.000    0.000    0.000 core.py:948(<genexpr>)
       22    0.000    0.000    0.000    0.000 __init__.py:30(get_format)
      156    0.000    0.000    0.000    0.000 type_check.py:209(_is_type_dispatcher)
       10    0.000    0.000    0.000    0.000 data_info.py:232(__init__)
      102    0.000    0.000    0.000    0.000 nanfunctions.py:340(_nanmax_dispatcher)
        4    0.000    0.000    0.000    0.000 core.py:557(get_cols)
       36    0.000    0.000    0.000    0.000 core.py:594(process_lines)
        6    0.000    0.000    0.000    0.000 fromnumeric.py:42(_wrapit)
        6    0.000    0.000    0.000    0.000 equivalencies.py:124(<lambda>)
       26    0.000    0.000    0.000    0.000 types.py:164(__get__)
       64    0.000    0.000    0.000    0.000 copy.py:273(<genexpr>)
       14    0.000    0.000    0.000    0.000 helpers.py:213(helper_multiplication)
        6    0.000    0.000    0.000    0.000 {built-in method _csv.reader}
       50    0.000    0.000    0.000    0.000 contextlib.py:352(__init__)
       12    0.000    0.000    0.000    0.000 validate.py:746(_is_num_param)
       12    0.000    0.000    0.001    0.000 utilities.py:529(checkInstrument)
       10    0.000    0.000    0.001    0.000 fastbasic.py:251(__init__)
        8    0.000    0.000    0.000    0.000 quantity.py:1038(__getitem__)
       20    0.000    0.000    0.000    0.000 data_info.py:264(__get__)
       68    0.000    0.000    0.000    0.000 helpers.py:95(helper_onearg_test)
       24    0.000    0.000    0.000    0.000 core.py:535(__init__)
       10    0.000    0.000    0.000    0.000 column.py:352(__array_finalize__)
        6    0.000    0.000    0.000    0.000 {method 'round' of 'numpy.ndarray' objects}
        2    0.000    0.000    0.000    0.000 _continuous_distns.py:1684(_cdf)
       66    0.000    0.000    0.000    0.000 _methods.py:47(_all)
       38    0.000    0.000    0.000    0.000 core.py:281(get_current_unit_registry)
        2    0.000    0.000    0.001    0.000 helpers.py:28(get_converter)
       10    0.000    0.000    0.000    0.000 column.py:730(_copy_attrs)
       14    0.000    0.000    0.000    0.000 re.py:170(match)
       12    0.000    0.000    0.002    0.000 constant.py:204(cgs)
        2    0.000    0.000    0.000    0.000 basic.py:310(get_cols)
        2    0.000    0.000    0.000    0.000 table.py:942(_make_table_from_cols)
        2    0.000    0.000    0.000    0.000 misc.py:35(sortmore)
      158    0.000    0.000    0.000    0.000 fromnumeric.py:2624(_amin_dispatcher)
      174    0.000    0.000    0.000    0.000 core.py:503(__deepcopy__)
       12    0.000    0.000    0.000    0.000 quantity.py:810(__getattr__)
        4    0.000    0.000    0.000    0.000 quantity.py:989(__pow__)
       12    0.000    0.000    0.000    0.000 core.py:552(<listcomp>)
        6    0.000    0.000    0.000    0.000 _distn_infrastructure.py:899(_open_support_mask)
       80    0.000    0.000    0.000    0.000 {built-in method time.time}
        4    0.000    0.000    0.065    0.016 contextlib.py:116(__exit__)
       12    0.000    0.000    0.000    0.000 {method 'item' of 'numpy.generic' objects}
       12    0.000    0.000    0.000    0.000 validate.py:637(_parse_with_caching)
        4    0.000    0.000    0.000    0.000 core.py:1333(physical_type)
      150    0.000    0.000    0.000    0.000 core.py:1450(is_unity)
       12    0.000    0.000    0.000    0.000 constant.py:135(__quantity_subclass__)
       20    0.000    0.000    0.000    0.000 table.py:1344(__getitem__)
        2    0.000    0.000    0.057    0.028 spectrum_tools.py:209(classify_by_standard)
       76    0.000    0.000    0.000    0.000 {built-in method _operator.mul}
       64    0.000    0.000    0.000    0.000 {built-in method _abc.get_cache_token}
        2    0.000    0.000    0.000    0.000 codecs.py:319(decode)
       54    0.000    0.000    0.000    0.000 re.py:232(compile)
       66    0.000    0.000    0.000    0.000 core.py:588(powers)
       30    0.000    0.000    0.000    0.000 quantity.py:774(isscalar)
        6    0.000    0.000    0.000    0.000 {built-in method _locale.setlocale}
        4    0.000    0.000    0.000    0.000 contextlib.py:81(__init__)
       74    0.000    0.000    0.000    0.000 fromnumeric.py:1225(_searchsorted_dispatcher)
       90    0.000    0.000    0.000    0.000 fromnumeric.py:2499(_amax_dispatcher)
       66    0.000    0.000    0.000    0.000 core.py:581(bases)
       76    0.000    0.000    0.000    0.000 helpers.py:21(_d)
        2    0.000    0.000    0.000    0.000 daophot.py:93(update_meta)
       18    0.000    0.000    0.000    0.000 core.py:142(registry)
       12    0.000    0.000    0.000    0.000 validate.py:593(check)
       18    0.000    0.000    0.000    0.000 generic.py:479(_do_parse)
        8    0.000    0.000    0.000    0.000 core.py:615(colnames)
        4    0.000    0.000    0.000    0.000 core.py:632(check_column_names)
        2    0.000    0.000    0.002    0.001 fastbasic.py:258(make_table)
        2    0.000    0.000    0.000    0.000 sextractor.py:20(get_cols)
        2    0.000    0.000    0.000    0.000 {method 'seek' of '_io.TextIOWrapper' objects}
       24    0.000    0.000    0.000    0.000 enum.py:526(__new__)
      102    0.000    0.000    0.000    0.000 multiarray.py:312(where)
        4    0.000    0.000    0.000    0.000 misc.py:824(set_locale)
        4    0.000    0.000    0.000    0.000 table.py:166(__init__)
        2    0.000    0.000    0.000    0.000 table.py:948(<listcomp>)
        4    0.000    0.000    0.010    0.003 header.py:806(copy)
        4    0.000    0.000    0.000    0.000 latex.py:313(__init__)
        2    0.000    0.000    0.000    0.000 parse.py:361(urlparse)
       64    0.000    0.000    0.000    0.000 multiarray.py:1078(putmask)
       68    0.000    0.000    0.000    0.000 numeric.py:1207(_rollaxis_dispatcher)
        8    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(round_)
       20    0.000    0.000    0.000    0.000 data_info.py:295(__getattr__)
       18    0.000    0.000    0.000    0.000 equivalencies.py:55(__eq__)
        4    0.000    0.000    0.000    0.000 fastbasic.py:344(<genexpr>)
        2    0.000    0.000    0.000    0.000 daophot.py:40(parse_col_defs)
       10    0.000    0.000    0.000    0.000 re.py:180(search)
       82    0.000    0.000    0.000    0.000 function_base.py:1680(_place_dispatcher)
       12    0.000    0.000    0.000    0.000 configuration.py:442(_validate_val)
        4    0.000    0.000    0.000    0.000 core.py:533(_get_physical_type_id)
        6    0.000    0.000    0.001    0.000 helpers.py:45(get_converters_and_unit)
       24    0.000    0.000    0.000    0.000 {built-in method builtins.iter}
        2    0.000    0.000    0.000    0.000 {built-in method _codecs.utf_8_decode}
       70    0.000    0.000    0.000    0.000 fromnumeric.py:1852(_shape_dispatcher)
       10    0.000    0.000    0.000    0.000 fromnumeric.py:3079(around)
        8    0.000    0.000    0.000    0.000 fromnumeric.py:3512(round_)
        2    0.000    0.000    0.000    0.000 column.py:56(<listcomp>)
       10    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(around)
       70    0.000    0.000    0.000    0.000 shape_base.py:20(_atleast_1d_dispatcher)
       66    0.000    0.000    0.000    0.000 core.py:574(scale)
       20    0.000    0.000    0.000    0.000 data_info.py:257(_parent)
        4    0.000    0.000    0.000    0.000 ecsv.py:27(process_lines)
        8    0.000    0.000    0.000    0.000 ui.py:92(<genexpr>)
       12    0.000    0.000    0.000    0.000 re.py:185(sub)
       68    0.000    0.000    0.000    0.000 fromnumeric.py:974(_argsort_dispatcher)
       32    0.000    0.000    0.000    0.000 fromnumeric.py:3024(_size_dispatcher)
       10    0.000    0.000    0.000    0.000 validate.py:1073(is_string)
       12    0.000    0.000    0.000    0.000 validate.py:651(_check_value)
       90    0.000    0.000    0.000    0.000 data_info.py:236(<genexpr>)
       10    0.000    0.000    0.001    0.000 column.py:835(__new__)
        2    0.000    0.000    0.000    0.000 data.py:85(_is_url)
        4    0.000    0.000    0.000    0.000 fixedwidth.py:296(__init__)
        2    0.000    0.000    0.000    0.000 shape_base.py:223(vstack)
       12    0.000    0.000    0.000    0.000 configuration.py:270(__get__)
        4    0.000    0.000    0.000    0.000 core.py:742(__eq__)
       10    0.000    0.000    0.000    0.000 data_info.py:496(__init__)
        4    0.000    0.000    0.000    0.000 core.py:539(<listcomp>)
        2    0.000    0.000    0.000    0.000 column.py:54(_auto_names)
       30    0.000    0.000    0.000    0.000 np_utils.py:160(fix_column_name)
        2    0.000    0.000    0.000    0.000 ecsv.py:93(get_cols)
        4    0.000    0.000    0.000    0.000 _continuous_distns.py:5240(_argcheck)
        6    0.000    0.000    0.000    0.000 locale.py:589(setlocale)
        2    0.000    0.000    0.000    0.000 parse.py:409(urlsplit)
       12    0.000    0.000    0.000    0.000 core.py:263(__init__)
        8    0.000    0.000    0.000    0.000 core.py:449(<listcomp>)
       10    0.000    0.000    0.000    0.000 column.py:403(name)
        4    0.000    0.000    0.000    0.000 fixedwidth.py:75(get_line)
        2    0.000    0.000    0.000    0.000 misc.py:119(groupmore)
        2    0.000    0.000    0.000    0.000 ui.py:192(_get_fast_reader_dict)
       56    0.000    0.000    0.000    0.000 {function Section.__getitem__ at 0x116e2b6a8}
        2    0.000    0.000    0.000    0.000 {built-in method _locale.nl_langinfo}
        2    0.000    0.000    0.000    0.000 {method 'seek' of '_io.FileIO' objects}
        2    0.000    0.000    0.000    0.000 _bootlocale.py:33(getpreferredencoding)
        4    0.000    0.000    0.000    0.000 contextlib.py:237(helper)
        2    0.000    0.000    0.000    0.000 {method 'all' of 'numpy.generic' objects}
       70    0.000    0.000    0.000    0.000 numerictypes.py:655(<listcomp>)
        2    0.000    0.000    0.000    0.000 numeric.py:166(ones)
        4    0.000    0.000    0.001    0.000 <__array_function__ internals>:2(cov)
        2    0.000    0.000    0.000    0.000 validate.py:839(is_float)
        4    0.000    0.000    0.000    0.000 core.py:875(get_err_str)
       20    0.000    0.000    0.000    0.000 table.py:179(__getitem__)
       12    0.000    0.000    0.000    0.000 table.py:757(<genexpr>)
       12    0.000    0.000    0.000    0.000 table.py:972(itercols)
       38    0.000    0.000    0.000    0.000 spectrum_tools.py:154(wave)
       24    0.000    0.000    0.000    0.000 {method 'copy' of 'list' objects}
       26    0.000    0.000    0.000    0.000 enum.py:628(value)
       40    0.000    0.000    0.000    0.000 multiarray.py:469(can_cast)
       18    0.000    0.000    0.000    0.000 core.py:848(make_converter)
       20    0.000    0.000    0.000    0.000 data_info.py:238(_parent)
       20    0.000    0.000    0.000    0.000 column.py:611(unit)
        4    0.000    0.000    0.000    0.000 table.py:1508(_set_masked)
        2    0.000    0.000    0.000    0.000 fixedwidth.py:403(__init__)
        2    0.000    0.000    0.000    0.000 ipac.py:161(get_cols)
       12    0.000    0.000    0.000    0.000 {method 'rsplit' of 'str' objects}
        2    0.000    0.000    0.002    0.001 genericpath.py:16(exists)
        4    0.000    0.000    0.221    0.055 contextlib.py:107(__enter__)
       32    0.000    0.000    0.000    0.000 nanfunctions.py:1417(_nanvar_dispatcher)
        4    0.000    0.000    0.000    0.000 core.py:595(to_string)
       12    0.000    0.000    0.000    0.000 metadata.py:406(__set__)
        4    0.000    0.000    0.000    0.000 physical.py:48(get_physical_type)
        4    0.000    0.000    0.000    0.000 fastbasic.py:60(_read_header)
       30    0.000    0.000    0.000    0.000 column.py:240(parent_table)
       20    0.000    0.000    0.000    0.000 column.py:250(parent_table)
       10    0.000    0.000    0.000    0.000 table.py:1046(_add_as_mixin_column)
       20    0.000    0.000    0.000    0.000 table.py:1539(ColumnClass)
        2    0.000    0.000    0.000    0.000 fastbasic.py:312(__init__)
        2    0.000    0.000    0.000    0.000 cds.py:164(process_lines)
        4    0.000    0.000    0.000    0.000 misc.py:16(first_true_index)
       24    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
       18    0.000    0.000    0.000    0.000 {method 'lstrip' of 'str' objects}
       50    0.000    0.000    0.000    0.000 contextlib.py:355(__enter__)
        4    0.000    0.000    0.000    0.000 parse.py:109(_coerce_args)
        6    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(concatenate)
        2    0.000    0.000    0.000    0.000 {built-in method numpy.empty}
        4    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(dot)
        4    0.000    0.000    0.000    0.000 core.py:761(__ne__)
       12    0.000    0.000    0.000    0.000 constant.py:155(name)
        2    0.000    0.000    0.000    0.000 fastbasic.py:214(__init__)
        4    0.000    0.000    0.000    0.000 table.py:755(_set_masked_from_cols)
        4    0.000    0.000    0.010    0.003 header.py:835(__deepcopy__)
        4    0.000    0.000    0.000    0.000 latex.py:332(<listcomp>)
        2    0.000    0.000    0.000    0.000 ipac.py:439(__init__)
        2    0.000    0.000    0.000    0.000 codecs.py:309(__init__)
        2    0.000    0.000    0.000    0.000 fromnumeric.py:1974(clip)
        4    0.000    0.000    0.000    0.000 core.py:538(_set_cols_from_names)
       24    0.000    0.000    0.000    0.000 core.py:618(<genexpr>)
       10    0.000    0.000    0.000    0.000 table.py:142(has_info_class)
       10    0.000    0.000    0.000    0.000 table.py:203(__setitem__)
        2    0.000    0.000    0.000    0.000 table.py:530(<listcomp>)
        2    0.000    0.000    0.001    0.001 table.py:862(_init_from_dict)
        2    0.000    0.000    0.000    0.000 cds.py:292(__init__)
        6    0.000    0.000    0.000    0.000 {method 'get_names' of 'astropy.io.ascii.cparser.CParser' objects}
       14    0.000    0.000    0.000    0.000 {method 'get_header_names' of 'astropy.io.ascii.cparser.CParser' objects}
        2    0.000    0.000    0.000    0.000 ipac.py:92(update_meta)
        4    0.000    0.000    0.000    0.000 daophot.py:106(<lambda>)
        4    0.000    0.000    0.000    0.000 misc.py:126(<genexpr>)
       14    0.000    0.000    0.000    0.000 spectrum_tools.py:158(flux)
       14    0.000    0.000    0.000    0.000 spectrum_tools.py:166(noise)
       12    0.000    0.000    0.000    0.000 {method 'setdefault' of 'collections.OrderedDict' objects}
        4    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(result_type)
        2    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(clip)
        2    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(atleast_2d)
        4    0.000    0.000    0.000    0.000 function_base.py:257(iterable)
        4    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(average)
        4    0.000    0.000    0.000    0.000 stride_tricks.py:143(broadcast_to)
        4    0.000    0.000    0.000    0.000 <__array_function__ internals>:2(broadcast_to)
       32    0.000    0.000    0.000    0.000 nanfunctions.py:1565(_nanstd_dispatcher)
        4    0.000    0.000    0.000    0.000 core.py:541(<listcomp>)
        4    0.000    0.000    0.000    0.000 helpers.py:103(helper_square)
        2    0.000    0.000    0.000    0.000 table.py:742(_check_names_dtype)
       12    0.000    0.000    0.000    0.000 table.py:882(<genexpr>)
       12    0.000    0.000    0.000    0.000 table.py:960(<genexpr>)
        2    0.000    0.000    0.000    0.000 latex.py:409(start_line)
        2    0.000    0.000    0.000    0.000 latex.py:447(__init__)
        2    0.000    0.000    0.001    0.000 daophot.py:207(get_data_lines)
        2    0.000    0.000    0.002    0.001 sextractor.py:140(read)
        2    0.000    0.000    0.000    0.000 daophot.py:388(__init__)
        2    0.000    0.000    0.000    0.000 misc.py:26(first_false_index)
        2    0.000    0.000    0.000    0.000 rst.py:57(__init__)
        4    0.000    0.000    0.000    0.000 {method 'mean' of 'numpy.ndarray' objects}
        2    0.000    0.000    0.000    0.000 {method 'min' of 'numpy.ndarray' objects}
       18    0.000    0.000    0.000    0.000 fromnumeric.py:3075(_around_dispatcher)
        2    0.000    0.000    0.001    0.000 <__array_function__ internals>:2(vstack)
        4    0.000    0.000    0.000    0.000 function_base.py:289(_average_dispatcher)
        2    0.000    0.000    0.000    0.000 quantity.py:1025(__iter__)
        2    0.000    0.000    0.001    0.000 helpers.py:278(helper_twoarg_comparison)
       16    0.000    0.000    0.000    0.000 core.py:362(process_val)
        4    0.000    0.000    0.000    0.000 basic.py:339(<genexpr>)
        2    0.000    0.000    0.000    0.000 table.py:762(<genexpr>)
        2    0.000    0.000    0.000    0.000 table.py:893(<listcomp>)
       18    0.000    0.000    0.000    0.000 table.py:1499(masked)
        2    0.000    0.000    0.000    0.000 latex.py:172(start_line)
        2    0.000    0.000    0.000    0.000 daophot.py:203(__init__)
        4    0.000    0.000    0.000    0.000 misc.py:21(<lambda>)
        4    0.000    0.000    0.000    0.000 {built-in method _operator.not_}
        2    0.000    0.000    0.000    0.000 codecs.py:260(__init__)
        4    0.000    0.000    0.000    0.000 {method 'conj' of 'numpy.ndarray' objects}
        2    0.000    0.000    0.000    0.000 {method 'max' of 'numpy.ndarray' objects}
        2    0.000    0.000    0.000    0.000 _methods.py:32(_amin)
        2    0.000    0.000    0.000    0.000 shape_base.py:219(_vhstack_dispatcher)
        8    0.000    0.000    0.000    0.000 stride_tricks.py:121(<genexpr>)
       16    0.000    0.000    0.000    0.000 core.py:321(process_lines)
        2    0.000    0.000    0.000    0.000 core.py:366(__call__)
        2    0.000    0.000    0.000    0.000 core.py:412(process_line)
        2    0.000    0.000    0.000    0.000 cds.py:300(read)
        2    0.000    0.000    0.000    0.000 daophot.py:37(__init__)
        2    0.000    0.000    0.000    0.000 ipac.py:175(<listcomp>)
        2    0.000    0.000    0.000    0.000 ui.py:179(_get_format_class)
        2    0.000    0.000    0.000    0.000 {built-in method builtins.abs}
        2    0.000    0.000    0.000    0.000 codecs.py:276(reset)
        2    0.000    0.000    0.000    0.000 codecs.py:327(reset)
        6    0.000    0.000    0.000    0.000 multiarray.py:145(concatenate)
        4    0.000    0.000    0.000    0.000 multiarray.py:635(result_type)
        4    0.000    0.000    0.000    0.000 multiarray.py:707(dot)
        2    0.000    0.000    0.000    0.000 shape_base.py:208(_arrays_for_stack_dispatcher)
        4    0.000    0.000    0.000    0.000 quantity.py:338(<genexpr>)
        1    0.000    0.000    0.000    0.000 perfomance.py:37(memoized_func)
        4    0.000    0.000    0.000    0.000 latex.py:80(process_lines)
        2    0.000    0.000    0.000    0.000 latex.py:125(start_line)
        2    0.000    0.000    0.000    0.000 misc.py:124(<lambda>)
        2    0.000    0.000    0.000    0.000 spectrum_tools.py:174(spectral_type)
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        2    0.000    0.000    0.000    0.000 fromnumeric.py:1970(_clip_dispatcher)
        2    0.000    0.000    0.000    0.000 _methods.py:28(_amax)
        4    0.000    0.000    0.000    0.000 function_base.py:2240(_cov_dispatcher)
        4    0.000    0.000    0.000    0.000 stride_tricks.py:139(_broadcast_to_dispatcher)
        2    0.000    0.000    0.000    0.000 basic.py:331(<listcomp>)
       10    0.000    0.000    0.000    0.000 column.py:396(name)
        4    0.000    0.000    0.000    0.000 table.py:798(<genexpr>)
        2    0.000    0.000    0.000    0.000 table.py:865(<listcomp>)
       10    0.000    0.000    0.000    0.000 table.py:868(_convert_col_for_table)
        2    0.000    0.000    0.000    0.000 {method 'set_names' of 'astropy.io.ascii.cparser.CParser' objects}
        2    0.000    0.000    0.000    0.000 misc.py:96(<lambda>)
        2    0.000    0.000    0.000    0.000 misc.py:102(<lambda>)
        4    0.000    0.000    0.000    0.000 <string>:2(_parse_args)
        1    0.000    0.000    0.000    0.000 spectrum_tools.py:288(filepath)
        2    0.000    0.000    0.000    0.000 {method 'end' of 're.Match' objects}
        4    0.000    0.000    0.000    0.000 parse.py:98(_noop)
        2    0.000    0.000    0.000    0.000 shape_base.py:78(_atleast_2d_dispatcher)
        4    0.000    0.000    0.000    0.000 stride_tricks.py:26(_maybe_view_as_subclass)
        2    0.000    0.000    0.000    0.000 core.py:435(<listcomp>)
        2    0.000    0.000    0.000    0.000 ecsv.py:86(update_meta)

In [5]:
pred_df['grism_id'].values[:10]


Out[5]:
array(['par321-00019', 'par321-00073', 'par321-00046', 'par321-00469',
       'par321-00007', 'par321-20003', 'par321-00130', 'par321-00071',
       'par321-00243', 'par321-00540'], dtype=object)

In [ ]: