SquareTraitMatrix#

class pybrops.core.mat.SquareTraitMatrix.SquareTraitMatrix[source]#

Bases: SquareMatrix, TraitMatrix

An abstract class for matrix wrapper objects with square axes and trait metadata.

The purpose of this abstract class is to merge the following interfaces:

  1. SquareMatrix

  2. TraitMatrix

Methods

adjoin

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

adjoin_trait

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

append

Append values to the Matrix.

append_trait

Append values to the TraitMatrix along the trait axis.

concat

Concatenate matrices together along an axis.

concat_trait

Concatenate list of Matrix together along the trait axis.

copy

Make a shallow copy of the Matrix.

deepcopy

Make a deep copy of the Matrix.

delete

Delete sub-arrays along an axis.

delete_trait

Delete sub-arrays along the trait axis.

from_hdf5

Read an object from an HDF5 file.

incorp

Incorporate values along the given axis before the given indices.

incorp_trait

Incorporate values along the trait axis before the given indices.

insert

Insert values along the given axis before the given indices.

insert_trait

Insert values along the trait axis before the given indices.

is_square

Determine whether the axes lengths for the square axes are identical.

is_square_trait

Determine whether the trait axes lengths for the square axes are identical.

lexsort

Perform an indirect stable sort using a sequence of keys.

lexsort_trait

Perform an indirect stable sort using a sequence of keys along the trait axis.

remove

Remove sub-arrays along an axis.

remove_trait

Remove sub-arrays along the trait axis.

reorder

Reorder elements of the Matrix using an array of indices.

reorder_trait

Reorder elements of the Matrix along the trait axis using an array of indices.

select

Select certain values from the matrix.

select_trait

Select certain values from the Matrix along the trait axis.

sort

Sort slements of the Matrix using a sequence of keys.

sort_trait

Sort slements of the Matrix along the trait axis using a sequence of keys.

to_hdf5

Write an object to an HDF5 file.

Attributes

mat

Pointer to raw matrix object.

mat_ndim

Number of dimensions of the raw matrix.

mat_shape

Shape of the raw matrix.

nsquare

Number of axes that are square.

nsquare_trait

Number of trait axes that are square.

ntrait

Number of traits.

square_axes

Axis indices for axes that are square.

square_axes_len

Axis lengths for axes that are square.

square_trait_axes

Axis indices for trait axes that are square.

square_trait_axes_len

Axis lengths for axes that are square.

trait

Trait label.

trait_axis

Axis along which traits are stored.

abstract __add__(value)#

Elementwise add matrices

Parameters:

value (object) – Object which to add.

Returns:

out – An object resulting from the addition.

Return type:

object

abstract __mul__(value)#

Elementwise multiply matrices

Parameters:

value (object) – Object which to multiply.

Returns:

out – An object resulting from the multiplication.

Return type:

object

abstract adjoin(values, axis, **kwargs)#

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

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

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

  • 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:

Matrix

abstract adjoin_trait(values, trait, **kwargs)#

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

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

  • trait (numpy.ndarray) – Trait names to adjoin to the TraitMatrix.

  • kwargs (dict) – Additional keyword arguments.

Returns:

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

Return type:

TraitMatrix

abstract append(values, axis, **kwargs)#

Append values to the Matrix.

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

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

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract append_trait(values, trait, **kwargs)#

Append values to the TraitMatrix along the trait axis.

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

  • trait (numpy.ndarray) – Trait names to append to the TraitMatrix.

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract classmethod concat(mats, axis, **kwargs)#

Concatenate matrices together along an axis.

Parameters:
  • mats (Sequence of Matrix) – 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 – The concatenated matrix. Note that concat does not occur in-place: a new Matrix is allocated and filled.

Return type:

Matrix

abstract classmethod concat_trait(mats, **kwargs)#

Concatenate list of Matrix together along the trait axis.

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

  • kwargs (dict) – Additional keyword arguments

Returns:

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

Return type:

TraitMatrix

abstract copy()#

Make a shallow copy of the Matrix.

Returns:

out – A shallow copy of the original Matrix.

Return type:

Matrix

abstract deepcopy(memo)#

Make a deep copy of the Matrix.

Parameters:

memo (dict) – Dictionary of memo metadata.

Returns:

out – A deep copy of the original Matrix.

Return type:

Matrix

abstract 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 Matrix with deleted elements. Note that concat does not occur in-place: a new Matrix is allocated and filled.

Return type:

Matrix

abstract delete_trait(obj, **kwargs)#

Delete sub-arrays along the trait axis.

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

  • kwargs (dict) – Additional keyword arguments.

Returns:

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

Return type:

TraitMatrix

abstract classmethod from_hdf5(filename, groupname)#

Read an object from an HDF5 file.

Parameters:
  • filename (str, Path, h5py.File) – If str, an HDF5 file name from which to read. If Path, an HDF5 file name from which to read. If h5py.File, an opened HDF5 file from which to read.

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

Returns:

out – An object read from an HDF5 file.

Return type:

HDF5InputOutput

abstract incorp(obj, values, axis, **kwargs)#

Incorporate 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 incorporated.

  • values (numpy.ndarray) – Values to incorporate into the matrix.

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

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract incorp_trait(obj, values, trait, **kwargs)#

Incorporate values along the trait axis before the given indices.

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

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

  • trait (numpy.ndarray) – Trait names to incorporate into the Matrix.

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract 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 (ArrayLike) – 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

abstract insert_trait(obj, values, trait, **kwargs)#

Insert values along the trait 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.

  • trait (numpy.ndarray) – Trait names to insert into the TraitMatrix.

  • kwargs (dict) – Additional keyword arguments.

Returns:

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

Return type:

TraitMatrix

abstract is_square()#

Determine whether the axes lengths for the square axes are identical.

Returns:

outTrue if all square axes are the same length. False if not all square axes are the same length.

Return type:

bool

abstract is_square_trait()[source]#

Determine whether the trait axes lengths for the square axes are identical.

Returns:

outTrue if all square trait axes are the same length. False if not all square trait axes are the same length.

Return type:

bool

abstract lexsort(keys, axis, **kwargs)#

Perform an indirect stable sort using a sequence of keys.

Parameters:
  • keys (A (k, N) array or tuple containing k (N,)-shaped sequences) – The k different columns to be sorted. The last column (or row if keys is a 2D array) is the primary sort key.

  • axis (int) – Axis to be indirectly sorted.

  • kwargs (dict) – Additional keyword arguments.

Returns:

indices – Array of indices that sort the keys along the specified axis.

Return type:

A (N,) ndarray of ints

abstract lexsort_trait(keys, **kwargs)#

Perform an indirect stable sort using a sequence of keys along the trait axis.

Parameters:
  • keys (A (k, N) array or tuple containing k (N,)-shaped sequences) – The k different columns to be sorted. The last column (or row if keys is a 2D array) is the primary sort key.

  • kwargs (dict) – Additional keyword arguments.

Returns:

indices – Array of indices that sort the keys along the specified axis.

Return type:

A (N,) ndarray of ints

abstract property mat: object#

Pointer to raw matrix object.

abstract property mat_ndim: int#

Number of dimensions of the raw matrix.

abstract property mat_shape: tuple#

Shape of the raw matrix.

abstract property nsquare: int#

Number of axes that are square.

abstract property nsquare_trait: int#

Number of trait axes that are square.

abstract property ntrait: int#

Number of traits.

abstract remove(obj, axis, **kwargs)#

Remove 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 remove the subarray defined by obj.

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract remove_trait(obj, **kwargs)#

Remove sub-arrays along the trait axis.

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

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract reorder(indices, axis, **kwargs)#

Reorder elements of the Matrix using an array of indices. Note this modifies the Matrix in-place.

Parameters:
  • indices (A (N,) ndarray of ints, Sequence of ints) – Array of indices that reorder the matrix along the specified axis.

  • axis (int) – Axis to be reordered.

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract reorder_trait(indices, **kwargs)#

Reorder elements of the Matrix along the trait axis using an array of indices. Note this modifies the Matrix in-place.

Parameters:
  • indices (A (N,) ndarray of ints, Sequence of ints) – Array of indices that reorder the matrix along the specified axis.

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract 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 – The output matrix with values selected. Note that select does not occur in-place: a new Matrix is allocated and filled.

Return type:

Matrix

abstract select_trait(indices, **kwargs)#

Select certain values from the Matrix along the trait axis.

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

  • kwargs (dict) – Additional keyword arguments.

Returns:

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

Return type:

TraitMatrix

abstract sort(keys, axis, **kwargs)#

Sort slements of the Matrix using a sequence of keys. Note this modifies the Matrix in-place.

Parameters:
  • keys (A (k, N) array or tuple containing k (N,)-shaped sequences) – The k different columns to be sorted. The last column (or row if keys is a 2D array) is the primary sort key.

  • axis (int) – Axis to be indirectly sorted.

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract sort_trait(keys, **kwargs)#

Sort slements of the Matrix along the trait axis using a sequence of keys. Note this modifies the Matrix in-place.

Parameters:
  • keys (A (k, N) array or tuple containing k (N,)-shaped sequences) – The k different columns to be sorted. The last column (or row if keys is a 2D array) is the primary sort key.

  • kwargs (dict) – Additional keyword arguments.

Return type:

None

abstract property square_axes: tuple#

Axis indices for axes that are square.

abstract property square_axes_len: tuple#

Axis lengths for axes that are square.

abstract property square_trait_axes: tuple#

Axis indices for trait axes that are square.

abstract property square_trait_axes_len: tuple#

Axis lengths for axes that are square.

abstract to_hdf5(filename, groupname, overwrite)#

Write an object to an HDF5 file.

Parameters:
  • filename (str, Path, h5py.File) – If str, an HDF5 file name to which to write. If Path, an HDF5 file path to which to write. If h5py.File, an opened HDF5 file to which to write.

  • groupname (str, None) – If str, an HDF5 group name under which object data is stored. If None, object 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

abstract property trait: object#

Trait label.

abstract property trait_axis: int#

Axis along which traits are stored.