argmedian
result = argmedian(x)
Input: x · Output: result
What it is
Index into x (a Vec or flattened Mat/Signal) of the element sitting at the median position. Because an even-length x has no single median element, this returns the lower of the two middle indices — a deliberate, documented tie-break (NumPy has no argmedian, precisely for this reason).
Overloads
One call shape — this function is not overloaded.
| Code | Input | Output | Description |
result = argmedian(x) | x Vec, Mat, or Signalnot documented yet | result scalar or Num | Returns a scalar Num index (0-based). |
Examples
From the documentation, and run by the build -- the output and the figure below are what the engine actually produced. Simplest first.
v = [5.0, 3.0, 8.0, 1.0, 9.0]
print("prod={prod(v)}")
print("argmedian={argmedian(v)} argquantile(0.9)={argquantile(v, 0.9)} argmean={argmean(v)}")
print("clamp={clamp([-5, 0, 5, 10], 0, 5)}")
print("var={var(v)} std^2={std(v)^2}")
print("lse={lse(v)}")
prod=1080 argmedian=0 argquantile(0.9)=4 argmean=0 clamp=[0, 0, 5, 5] var=11.2 std^2=11.2 lse=9.328591
from core-math
How it works
argmedian(x) — the index (into x, not the sorted copy) of the element AT the median position. For an even-length x the median itself is an average of two elements, not any single one, so this returns the lower of the two middle indices — a documented, defined choice (NumPy has no argmedian at all, precisely because of this ambiguity).
From the note above this builtin in the interpreter, where the reasoning was written down as it was built.