# core.eval:delta3p()


Resolve transport data acquired using the three point delta method.


Usage

``` python
core.eval:delta3p(data: np.ndarray) -> tuple[np.ndarray, np.ndarray]
core.eval:delta3p(
    data: pl.DataFrame,
    column: str | None = None,
) -> pl.LazyFrame
```


Should have superior rejection of drifts compared to the 2p delta method. Dispatches on the type of [data](control.gui_dict.GuiDict.data.md#matr1x.control.gui_dict.GuiDict.data): numpy arrays are evaluated eagerly with `delta3p_numpy`, polars DataFrames with `delta3p_polars`, whose result is not collected, so polars can optimize it together with later stages of a query. Numpy input raises a FutureWarning, as it will be removed in a future release.


## Parameters


`data: np.ndarray or pl.DataFrame`  
Array of data with dimension 'm' containing e.g. voltage, or a frame holding such a column. Array contains triples of values with format \[value1 for +I, value1 for -I, value1 for +I, value2 for +I, ..\].

`column: str = None`  
Only used for polars DataFrames. Name of the column containing the data, e.g. voltage. If not given, the frame must contain exactly one column, which is used.


## Returns


`pos: np.ndarray or pl.LazyFrame`  
For numpy input: array with dimension 'm//3' containing the contribution symmetric in current. For polars input: lazy frame with dimension 'm//3' and the columns `pos` and `neg`.

`neg: np.ndarray`  
Array with dimension 'm//3' containing the contribution antisymmetric in current. Only returned for numpy input.


## See Also

`delta3p_numpy`  

`delta3p_polars`
