OutlierIdentifiers
In brief
This a Python package for 1D outlier identifier functions. If follows closely the Wolfram Language (WL) paclet [AAp1], the R package [AAp2], and the Raku package [AAp3].
Here is a Jupyter notebook with usage examples: "OutlierIdentifiers-guide.ipynb"; (Markdown version).
Installation
From PyPI.org:
python3 -m pip install OutlierIdentifiers
From GitHub:
python3 -m pip install git+https://github.com/antononcube/Python-packages.git#egg=OutlierIdentifiers\&subdirectory=OutlierIdentifiers
Usage examples
Load packages:
import numpy as np
import plotly.graph_objects as go
from OutlierIdentifiers import *
Generate a vector with random numbers:
np.random.seed(14)
vec = np.random.normal(loc=10, scale=20, size=30)
print(vec)
[ 41.02678223 11.58372049 13.47953057 8.55326868 -30.086588
12.89355626 -20.02337245 14.22218902 -1.16410111 31.6905813
6.27421752 10.2932275 -11.51138939 22.84504148 6.39326577
22.40600507 26.21948669 25.55871733 5.25020644 -27.83824691
-13.44243588 26.72413943 30.18546801 35.86198722 -0.98662331
-9.6342573 28.29345516 27.46140757 10.44222283 9.91712833]
Plot the vector:
# Create a scatter plot with markers
fig = go.Figure(data=go.Scatter(y=vec, mode='markers'))
# Add labels and title
fig.update_layout(title='Vector of Numbers', xaxis_title='Index', yaxis_title='Value', template = "plotly_dark")
# Display the plot
fig.show()
Find outlier positions:
outlier_identifier(vec, identifier=hampel_identifier_parameters)
array([ True, False, False, False, True, False, True, False, False,
True, False, False, True, False, False, False, False, False,
False, True, True, False, False, True, False, True, False,
False, False, False])
Find outlier values:
outlier_identifier(vec, identifier=hampel_identifier_parameters, value = True)
array([ 41.02678223, -30.086588 , -20.02337245, 31.6905813 ,
-11.51138939, -27.83824691, -13.44243588, 35.86198722,
-9.6342573 ])
Find top outlier positions and values:
outlier_identifier(vec, identifier = lambda v: top_outliers(hampel_identifier_parameters(v)))
array([ True, False, False, False, False, False, False, False, False,
True, False, False, False, False, False, False, False, False,
False, False, False, False, False, True, False, False, False,
False, False, False])
outlier_identifier(vec, identifier = lambda v: top_outliers(hampel_identifier_parameters(v)), value=True)
array([41.02678223, 31.6905813 , 35.86198722])
Find bottom outlier positions and values (using quartiles-based identifier):
outlier_identifier(vec, identifier = lambda v: bottom_outliers(quartile_identifier_parameters(v)))
array([False, False, False, False, True, False, True, False, False,
False, False, False, False, False, False, False, False, False,
False, True, False, False, False, False, False, False, False,
False, False, False])
outlier_identifier(vec, identifier = lambda v: bottom_outliers(quartile_identifier_parameters(v)), value=True)
array([-30.086588 , -20.02337245, -27.83824691])
Here is another way to get the outlier values:
vec[pred]
array([-30.086588 , -20.02337245, -27.83824691])
The available outlier parameters functions are:
hampel_identifier_parameterssplus_quartile_identifier_parametersquartile_identifier_parameters
[ f(vec) for f in (hampel_identifier_parameters, splus_quartile_identifier_parameters, quartile_identifier_parameters)]
[(-8.796653643076334, 30.822596969354976),
(-37.649981209714, 64.27685968784428),
(-14.46873856125025, 36.49468188752889)]
References
[AA1] Anton Antonov, "Outlier detection in a list of numbers", (2013), MathematicaForPrediction at WordPress.
[AAp1] Anton Antonov, OutlierIdentifiers WL paclet, (2023), Wolfram Language Paclet Repository.
[AAp2] Anton Antonov, OutlierIdentifiers R package, (2019), R-packages at GitHub/antononcube.
[AAp3] Anton Antonov, OutlierIdentifiers Raku package, (2022), GitHub/antononcube.
Metadata
Release files for OutlierIdentifiers 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| outlieridentifiers-0.1.2.tar.gz | 5.3 kB | Without provenance | Details for outlieridentifiers-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| OutlierIdentifiers-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for OutlierIdentifiers-0.1.2-py3-none-any.whl |
Total release size: 10.8 kB
Release files / outlieridentifiers-0.1.2.tar.gz
| Download URL | outlieridentifiers-0.1.2.tar.gz |
|---|---|
| Size | 5.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ae9736d79ef60f76f6fa21cf8db73b357a48011fa486c74a830d20e78492e708
|
|
BLAKE2b-256 checksum How to use checksums |
fc396f1405ed925d44c1126edb360bf1a5a5d942df30019273c2f27296083d16
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.2
|
Release files / OutlierIdentifiers-0.1.2-py3-none-any.whl
| Download URL | OutlierIdentifiers-0.1.2-py3-none-any.whl |
|---|---|
| Size | 5.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
74a97360739c75c619b82caa1ec46f3e3cbd1f75af2756b92d9a3898ab3c284c
|
|
BLAKE2b-256 checksum How to use checksums |
9759c77d4c512a51f52bac9e2210f16cf6ee76b93a1b0df34cef6f76b6a99a61
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.2
|
Security for OutlierIdentifiers 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.