JuliaPy / JuliaPy/PyCall.jl

Numpy structured array unintuitive handling

Open
#610 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
1.5k
Forks
186
PR merge metrics
No merged PRs in 30d

Description

Hi,

Thank you for the great work on this package.

I have to deal with a [numpy structured array](https://docs.scipy.org/doc/numpy-1.15.0/user/basics.rec.html) 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

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.