Skip to content

Commit

Permalink
Easier access to timepoints via ExpDataView (#2193)
Browse files Browse the repository at this point in the history
ExpDataView provides convenient access to measurements and the like as numpy
arrays. However, accessing the associated timepoints is currently only
possible via `ExpDataView(...)._swigptr.ts_` which returns an
amici.amici.DoubleVector. That's awkward.

Now:

```python
amici.ExpDataView(amici.ExpData(1, 2, 3, [4, 5, 6])).ts
Out[3]: array([4., 5., 6.])
```

Resolves #2191
  • Loading branch information
dweindl authored Nov 15, 2023
1 parent 269910b commit 316d94d
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion python/sdist/amici/numpy.py
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,7 @@ class ExpDataView(SwigPtrView):
"""

_field_names = [
"ts",
"observedData",
"observedDataStdDev",
"observedEvents",
Expand All @@ -363,7 +364,9 @@ def __init__(self, edata: Union[ExpDataPtr, ExpData]):
f"Unsupported pointer {type(edata)}, must be"
f"amici.ExpDataPtr!"
)
self._field_dimensions = { # observables
self._field_dimensions = {
"ts": [edata.nt()],
# observables
"observedData": [edata.nt(), edata.nytrue()],
"observedDataStdDev": [edata.nt(), edata.nytrue()],
# event observables
Expand All @@ -378,6 +381,7 @@ def __init__(self, edata: Union[ExpDataPtr, ExpData]):
len(edata.fixedParametersPreequilibration)
],
}
edata.ts = edata.ts_
edata.observedData = edata.getObservedData()
edata.observedDataStdDev = edata.getObservedDataStdDev()
edata.observedEvents = edata.getObservedEvents()
Expand Down

0 comments on commit 316d94d

Please sign in to comment.