Skip to content

Numpy structured array unintuitive handling #610

@MaxandreJ

Description

@MaxandreJ

Hi,

Thank you for the great work on this package.

I have to deal with a numpy structured array variable that I've imported into Julia. I've called this variable my_simulations.

To see the different fields inside this variable, I can call my_simulations[:dtype] and I get
PyObject dtype([('drugs', 'O'), ('Vms', 'O'), ('I_tots', 'O'), ('Ycs', 'O'), ('Cais', 'O'), ('Nais', 'O'), ('caSRs', 'O'), ('ts', 'O')]).
The first element of each tuple in the list corresponds to the names of the keys (numpy calls them fields) in this variable.

In Python, you can access each key using my_simulations['keyname'], e.g. my_simulations['Vms']. I expected that in Julia you could access each key using my_simulations["keyname"], e.g. my_simulations["Vms"]. But this doesn't work and I get the following error message
ERROR: KeyError: key "Vms" not found

The workaround I've found is to call get(my_sims,"keyname") e.g. get(my_sims,"Vms") which works. But the method my_simulations["keyname"] would be more intuitive and closer to the Python syntax.

Thank you!

My version of PyCall is v"1.18.5+".

Best,
Max

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions