PascalLesage / presamples

Package to write, load, manage and verify numerical arrays, called presamples.
BSD 3-Clause "New" or "Revised" License
14 stars 11 forks source link

parameters mapping faulty when more than one presamples package with parameters passed #30

Closed PascalLesage closed 6 years ago

PascalLesage commented 6 years ago

See here

The indices start over from 0 for every name_list:

arr1 = np.random.random(size=(2, 10))
arr2 = np.random.random(size=(2, 10))
names1 = ['a', 'b']
names2 = ['c', 'd']
label1 = 'one'
label2 = 'two'

pp_id, pp_fp = ps.create_presamples_package(parameter_data=[(arr1, names1, label1), (arr2, names2, label2)])
loader =ps.PackagesDataLoader([pp_fp])
params = loader.parameters[0]
params.mapping

{'a': 0, 'b': 1, 'c': 0, 'd': 1}

params.values()

array([ 0.91739674, 0.89426511, 0.68989611, 0.44477301])

PascalLesage commented 6 years ago

suggest:

all_names = [name for names in lst for lst in names_lists]
self.mapping = {
            name: index
            for index, name in enumerate(all_names)
        }
cmutel commented 6 years ago

Fixed in #32