series_abs
This page explains how to use the series_abs function in APL.
The series_abs function transforms all values in a numeric dynamic array (series) into their absolute values. This means that it converts negative values to their positive equivalents while leaving non-negative values unchanged.
You can use series_abs when you want to normalize data and remove the effect of directionality. For example, it’s useful in time-series scenarios where you want to analyze the magnitude of changes regardless of whether they’re positive or negative. Typical applications include error analysis, performance monitoring, and anomaly detection.
Usage
Syntax
Parameters
| Parameter | Type | Description |
|---|---|---|
array | dynamic | A dynamic array of numeric values. |
Returns
A dynamic array where each element is the absolute value of the corresponding input element.
Use case examples
In log analysis, you can use series_abs to analyze request durations by focusing on their magnitude, regardless of whether values are represented as positive or negative deviations.
Query
Output
| id | durations | abs_durations |
|---|---|---|
| u123 | [-50, 30, -10, 20] | [50, 30, 10, 20] |
| u456 | [5, -7, -3, 9] | [5, 7, 3, 9] |
This query collects request durations for each user, then converts them into absolute values for magnitude-based analysis.
In OpenTelemetry traces, you can use series_abs to evaluate span durations as absolute values when analyzing deviations.
Query
Output
| service.name | durations | abs_durations |
|---|---|---|
| frontend | [-200ms, 300ms, -100ms] | [200ms, 300ms, 100ms] |
| productcatalogservice | [50ms, -80ms, 120ms] | [50ms, 80ms, 120ms] |
This query aggregates span durations per service and applies series_abs to analyze absolute values of latencies.
In security logs, you can use series_abs to normalize anomalous request durations before analyzing request patterns.
Query
Output
| status | durations | abs_durations |
|---|---|---|
| 200 | [-10, 15, -20, 5] | [10, 15, 20, 5] |
| 500 | [25, -40, -35, 30] | [25, 40, 35, 30] |
This query groups request durations by status code and applies series_abs to focus on the magnitude of request times.
List of related functions
- series_acos: Returns the arc cosine of each element in an array. Use when you need to invert cosine transformations instead of sine.
- series_asin: Applies the arc sine function element-wise to array values. Use this when you need the inverse sine instead of the inverse cosine.
- series_atan: Returns the arc tangent of each element in an array. Useful for handling tangent-derived data.