Skip to content

Commit 6b4d169

Browse files
committed
previous commit (min,max,nan..) works w/ 2D arrays
1 parent 73c5325 commit 6b4d169

File tree

2 files changed

+18
-17
lines changed

2 files changed

+18
-17
lines changed

quantities/tests/test_uncertainty.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -90,29 +90,30 @@ def test_uncertainty_nansum(self):
9090
self.assertQuantityEqual(np.sum(uq), np.nansum(uq_nan))
9191

9292
def test_uncertainty_minmax_nan_arg(self):
93-
q = [1,2] * pq.m
94-
# quantity
93+
q = [[1, 2], [3, 4]] * pq.m # quantity
9594
self.assertQuantityEqual(q.min(), 1*pq.m) # min
96-
self.assertQuantityEqual(q.max(), 2*pq.m) # max
95+
self.assertQuantityEqual(q.max(), 4*pq.m) # max
9796
self.assertQuantityEqual(q.argmin(), 0) # argmin
98-
self.assertQuantityEqual(q.argmax(), 1) # argmax
97+
self.assertQuantityEqual(q.argmax(), 3) # argmax
9998
# uncertain quantity
100-
uq = UncertainQuantity([1,2], pq.m, [1,1])
99+
uq = UncertainQuantity([[1,2],[3,4]], pq.m, [[1,1],[1,1]])
101100
self.assertQuantityEqual(uq.min(), 1*pq.m) # min
102-
self.assertQuantityEqual(uq.max(), 2*pq.m) # max
101+
self.assertQuantityEqual(uq.max(), 4*pq.m) # max
103102
self.assertQuantityEqual(uq.argmin(), 0) # argmin
104-
self.assertQuantityEqual(uq.argmax(), 1) # argmax
103+
self.assertQuantityEqual(uq.argmax(), 3) # argmax
105104
# now repeat the above with NaNs
106-
nanq = [1,2, np.nan] * pq.m
107-
nanuq = UncertainQuantity([1,2, np.nan], pq.m, [1,1,np.nan])
105+
nanq = [[1, 2], [3, 4], [np.nan,np.nan]] * pq.m # quantity
106+
nanuq = UncertainQuantity([[1,2],[3,4],[np.nan,np.nan]],
107+
pq.m,
108+
[[1,1],[1,1],[np.nan,np.nan]])
108109
self.assertQuantityEqual(nanq.nanmin(), 1*pq.m) # min
109-
self.assertQuantityEqual(nanq.nanmax(), 2*pq.m) # max
110+
self.assertQuantityEqual(nanq.nanmax(), 4*pq.m) # max
110111
self.assertQuantityEqual(nanq.nanargmin(), 0) # argmin
111-
self.assertQuantityEqual(nanq.nanargmax(), 1) # argmax
112+
self.assertQuantityEqual(nanq.nanargmax(), 3) # argmax
112113
self.assertQuantityEqual(nanuq.nanmin(), 1*pq.m) # min
113-
self.assertQuantityEqual(nanuq.nanmax(), 2*pq.m) # max
114+
self.assertQuantityEqual(nanuq.nanmax(), 4*pq.m) # max
114115
self.assertQuantityEqual(nanuq.nanargmin(), 0) # argmin
115-
self.assertQuantityEqual(nanuq.nanargmax(), 1) # argmax
116+
self.assertQuantityEqual(nanuq.nanargmax(), 3) # argmax
116117

117118

118119

quantities/uncertainquantity.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -243,22 +243,22 @@ def sqrt(self, out=None):
243243

244244
@with_doc(np.ndarray.max)
245245
def max(self, axis=None, out=None):
246-
idx = np.argmax(self.magnitude)
246+
idx = np.unravel_index(np.argmax(self.magnitude), self.shape)
247247
return self[idx]
248248

249249
@with_doc(np.nanmax)
250250
def nanmax(self, axis=None, out=None):
251-
idx = np.nanargmax(self.magnitude)
251+
idx = np.unravel_index(np.nanargmax(self.magnitude), self.shape)
252252
return self[idx]
253253

254254
@with_doc(np.ndarray.min)
255255
def min(self, axis=None, out=None):
256-
idx = np.argmin(self.magnitude)
256+
idx = np.unravel_index(np.argmin(self.magnitude), self.shape)
257257
return self[idx]
258258

259259
@with_doc(np.nanmin)
260260
def nanmin(self, axis=None, out=None):
261-
idx = np.nanargmin(self.magnitude)
261+
idx = np.unravel_index(np.nanargmin(self.magnitude), self.shape)
262262
return self[idx]
263263

264264
@with_doc(np.ndarray.argmin)

0 commit comments

Comments
 (0)