DenseScaledMatrix#

class pybrops.core.mat.DenseScaledMatrix.DenseScaledMatrix(mat, location=0.0, scale=1.0, **kwargs)[source]#

Bases: DenseMatrix, ScaledMatrix

A concrete class for dense, scaled matrix wrapper objects.

The purpose of this concrete class is to provide base functionality for:
  1. Matrix in-place matrix scaling/unscaling routines.

  2. Matrix scaling/unscaling routines

Constructor for DenseScaledMatrix.

Parameters:

kwargs (dict) – Additional keyword arguments used for cooperative inheritance.

Methods

adjoin

Add additional elements to the end of the Matrix along an axis.

concat

Concatenate matrices together along an axis.

copy

Make a shallow copy of the DenseScaledMatrix.

deepcopy

Make a deep copy of the DenseScaledMatrix.

delete

Delete sub-arrays along an axis.

from_hdf5

Read DenseMatrix from an HDF5 file.

insert

Insert values along the given axis before the given indices.

rescale

Transform matrix values within the ScaledMatrix to have centered and scaled values.

select

Select certain values from the matrix.

to_hdf5

Write GenotypeMatrix to an HDF5 file.

transform

Transform a provided matrix using location and scale parameters within the DenseScaledMatrix.

unscale

Transform matrix values within the ScaledMatrix back to their unscaled and decentered values.

untransform

Untransform a provided matrix using location and scale parameters within the DenseScaledMatrix.

Attributes

location

Location of the matrix data.

mat

Pointer to raw numpy.ndarray object.

mat_ndim

Number of dimensions of the raw numpy.ndarray.

mat_shape

Shape of the raw numpy.ndarray.

scale

Scale of the matrix data.

__add__(value)#

Elementwise add matrices

Parameters:

value (object) – Object which to add.

Returns:

out – An object resulting from the addition.

Return type:

object

__mul__(value)#

Elementwise multiply matrices

Parameters:

value (object) – Object which to multiply.

Returns:

out – An object resulting from the multiplication.

Return type:

object

adjoin(values, axis=-1, **kwargs)#

Add additional elements to the end of the Matrix along an axis.

Parameters:
  • values (DenseMatrix, numpy.ndarray) – Values are appended to append to the Matrix.

  • axis (int) – The axis along which values are appended.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – A copy of mat with values appended to axis. Note that adjoin does not occur in-place: a new Matrix is allocated and filled.

Return type:

DenseMatrix

static concat(mats, axis, **kwargs)#

Concatenate matrices together along an axis.

Parameters:
  • mats (ArrayLike of DenseMatrix) – List of Matrix to concatenate. The matrices must have the same shape, except in the dimension corresponding to axis.

  • axis (int) – The axis along which the arrays will be joined.

  • kwargs (dict) – Additional keyword arguments

Returns:

out – A concatenated DenseMatrix. Note that concat does not occur in-place: a new DenseMatrix is allocated and filled.

Return type:

Matrix

copy()[source]#

Make a shallow copy of the DenseScaledMatrix.

Returns:

out – A shallow copy of the original DenseScaledMatrix.

Return type:

DenseScaledMatrix

deepcopy(memo=None)[source]#

Make a deep copy of the DenseScaledMatrix.

Parameters:

memo (dict) – Dictionary of memo metadata.

Returns:

out – A deep copy of the original DenseScaledMatrix.

Return type:

DenseScaledMatrix

delete(obj, axis, **kwargs)#

Delete sub-arrays along an axis.

Parameters:
  • obj (int, slice, or Sequence of ints) – Indicate indices of sub-arrays to remove along the specified axis.

  • axis (int) – The axis along which to delete the subarray defined by obj.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – A DenseMatrix with deleted elements. Note that concat does not occur in-place: a new DenseMatrix is allocated and filled.

Return type:

DenseMatrix

classmethod from_hdf5(filename, groupname=None)#

Read DenseMatrix from an HDF5 file.

Parameters:
  • filename (str, Path, h5py.File) – If str or Path, an HDF5 file name from which to read. File is closed after reading. If h5py.File, an opened HDF5 file from which to read. File is not closed after reading.

  • groupname (str, None) – If str, an HDF5 group name under which DenseMatrix data is stored. If None, DenseMatrix is read from base HDF5 group.

Returns:

out – A dense matrix read from file.

Return type:

DenseMatrix

insert(obj, values, axis, **kwargs)#

Insert values along the given axis before the given indices.

Parameters:
  • obj (int, slice, or Sequence of ints) – Object that defines the index or indices before which values is inserted.

  • values (Matrix, numpy.ndarray) – Values to insert into the matrix.

  • axis (int) – The axis along which values are inserted.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – A Matrix with values inserted. Note that insert does not occur in-place: a new Matrix is allocated and filled.

Return type:

Matrix

property location: ndarray#

Location of the matrix data.

property mat: ndarray#

Pointer to raw numpy.ndarray object.

property mat_ndim: int#

Number of dimensions of the raw numpy.ndarray.

property mat_shape: tuple#

Shape of the raw numpy.ndarray.

rescale(inplace=True)[source]#

Transform matrix values within the ScaledMatrix to have centered and scaled values.

Parameters:

inplace (bool, default = True) – Whether to modify matrix values in-place. If True, then values in DenseScaledMatrix values are scaled internally.

Returns:

out – A matrix of centered and scaled values. If inplace == True, then a pointer to the raw matrix is returned.

Return type:

numpy.ndarray

property scale: ndarray#

Scale of the matrix data.

select(indices, axis, **kwargs)#

Select certain values from the matrix.

Parameters:
  • indices (ArrayLike (Nj, ...)) – The indices of the values to select.

  • axis (int) – The axis along which values are selected.

  • kwargs (dict) – Additional keyword arguments.

Returns:

out – A DenseMatrix with values selected. Note that select does not occur in-place: a new DenseMatrix is allocated and filled.

Return type:

DenseMatrix

to_hdf5(filename, groupname=None, overwrite=True)#

Write GenotypeMatrix to an HDF5 file.

Parameters:
  • filename (str, Path, h5py.File) – If str, an HDF5 file name to which to write. File is closed after writing. If h5py.File, an opened HDF5 file to which to write. File is not closed after writing.

  • groupname (str, None) – If str, an HDF5 group name under which the DenseMatrix data is stored. If None, the DenseMatrix is written to the base HDF5 group.

  • overwrite (bool) – Whether to overwrite values in an HDF5 file if a field already exists.

Return type:

None

transform(mat, copy=False)[source]#

Transform a provided matrix using location and scale parameters within the DenseScaledMatrix.

Parameters:
  • mat (numpy.ndarray) – An array to be centered and scaled.

  • copy (bool, default = False) – Whether to copy the input mat or not.

Returns:

out – A transformed array.

Return type:

numpy.ndarray

unscale(inplace=True)[source]#

Transform matrix values within the ScaledMatrix back to their unscaled and decentered values.

Parameters:

inplace (bool, default = True) – Whether to modify matrix values in-place.

Returns:

out – A matrix of unscaled and decentered values. If inplace == True, then a pointer to the raw matrix is returned.

Return type:

numpy.ndarray

untransform(mat, copy=False)[source]#

Untransform a provided matrix using location and scale parameters within the DenseScaledMatrix.

Parameters:
  • mat (numpy.ndarray) – An array to be unscaled and decentered.

  • copy (bool, default = False) – Whether to copy the input mat or not.

Returns:

out – A transformed array.

Return type:

numpy.ndarray