-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Labels
Description
xarray/xarray/core/dataarray.py
Lines 482 to 489 in 5e80189
def __setitem__(self, key, value): | |
if isinstance(key, basestring): | |
self.coords[key] = value | |
else: | |
# Coordinates in key, value and self[key] should be consistent. | |
# TODO Coordinate consistency in key is checked here, but it | |
# causes unnecessary indexing. It should be optimized. | |
obj = self[key] |
In #1746, we added a validation in xr.DataArray.__setitem__
whether the coordinates consistency of array, key, and values are checked.
In the current implementation, we call xr.DataArray.__getitem__
to use the existing coordinate validation logic, but it does unnecessary indexing and it may decrease the __setitem__
performance if the arrray is multidimensional.
We may need to optimize the logic here.
Is it reasonable to constantly monitor the performance of basic operations, such as Dataset
construction, alignment, indexing, and assignment?
(or are these operations too light to make a performance monitor?)