Qu

argmedian

Builtin index · Core maths

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.

CodeInputOutputDescription
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)}")
output
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.