pylops.Restriction¶
-
class
pylops.Restriction(M, iava, dims=None, dir=0, dtype='float64', inplace=True)[source]¶ Restriction (or sampling) operator.
Extract subset of values from input vector at locations
iavain forward mode and place those values at locationsiavain an otherwise zero vector in adjoint mode.Parameters: - M :
int Number of samples in model.
- iava :
listornumpy.ndarray Integer indices of available samples for data selection.
- dims :
list Number of samples for each dimension (
Noneif only one dimension is available)- dir :
int, optional Direction along which restriction is applied.
- dtype :
str, optional Type of elements in input array.
- inplace :
bool, optional Work inplace (
True) or make a new copy (False). By default, data is a reference to the model (in forward) and model is a reference to the data (in adjoint).
See also
pylops.signalprocessing.Interp- Interpolation operator
Notes
Extraction (or sampling) of a subset of \(N\) values at locations
iavafrom an input (or model) vector \(\mathbf{x}\) of size \(M\) can be expressed as:\[y_i = x_{l_i} \quad \forall i=0,1,\ldots,N-1\]where \(\mathbf{l}=[l_0, l_1,\ldots, l_{N-1}]\) is a vector containing the indeces of the original array at which samples are taken.
Conversely, in adjoint mode the available values in the data vector \(\mathbf{y}\) are placed at locations \(\mathbf{l}=[l_0, l_1,\ldots, l_{M-1}]\) in the model vector:
\[x_{l_i} = y_i \quad \forall i=0,1,\ldots,N-1\]and \(x_{j}=0\) for \(j \neq l_i\) (i.e., at all other locations in input vector).
Attributes: Methods
__init__(M, iava[, dims, dir, dtype, inplace])Initialize this LinearOperator. adjoint()Hermitian adjoint. apply_columns(cols)Apply subset of columns of operator cond([uselobpcg])Condition number of linear operator. conj()Complex conjugate operator div(y[, niter, densesolver])Solve the linear problem \(\mathbf{y}=\mathbf{A}\mathbf{x}\). dot(x)Matrix-matrix or matrix-vector multiplication. eigs([neigs, symmetric, niter, uselobpcg])Most significant eigenvalues of linear operator. mask(x)Apply mask to input signal returning a signal of same size with values at iavalocations and0at other locationsmatmat(X)Matrix-matrix multiplication. matvec(x)Matrix-vector multiplication. rmatmat(X)Matrix-matrix multiplication. rmatvec(x)Adjoint matrix-vector multiplication. todense([backend])Return dense matrix. toimag([forw, adj])Imag operator toreal([forw, adj])Real operator tosparse()Return sparse matrix. trace([neval, method, backend])Trace of linear operator. transpose()Transpose this linear operator. -
mask(x)[source]¶ Apply mask to input signal returning a signal of same size with values at
iavalocations and0at other locationsParameters: - x :
numpy.ndarrayorcupy.ndarray Input array (can be either flattened or not)
Returns: - y :
numpy.ma.core.MaskedArray Masked array.
- x :
- M :