# Matrix

A `Matrix` is represented either by an `OperationNode`, or the derived class `Matrix`. Matrices are the most fundamental objects SystemDS operates on.

Although it is possible to generate matrices with the function calls or object construction specified below, the recommended way is to use the methods defined on `SystemDSContext`.

class `systemds.operator.``Matrix`(sds_context: SystemDSContext, operation: str, unnamed_input_nodes: Union[str, Iterable[Union[DAGNode, str, int, float, bool]]] = None, named_input_nodes: Dict[str, Union[DAGNode, str, int, float, bool]] = None, local_data: numpy.array = None)
  `__init__`(sds_context: SystemDSContext, operation: str, unnamed_input_nodes: Union[str, Iterable[Union[DAGNode, str, int, float, bool]]] = None, named_input_nodes: Dict[str, Union[DAGNode, str, int, float, bool]] = None, local_data: numpy.array = None) → Matrix

    Create general OperationNode

    Parameters

      - sds_context – The SystemDS context for performing the operations

      - operation – The name of the DML function to execute

      - unnamed_input_nodes – inputs identified by their position, not name

      - named_input_nodes – inputs with their respective parameter name

      - output_type – type of the output in DML (double, matrix etc.)

      - is_python_local_data – if the data is local in python e.g. Numpy arrays

      - number_of_outputs – If set to other value than 1 then it is expected that this operation node returns multiple values. If set remember to set the output_types value as well.

      - output_types – The types of output in a multi output scenario. Default is None, and means every multi output is a matrix.

  `abs`() → systemds.operator.nodes.matrix.Matrix

    Calculate absolute.

    Returns

      Matrix representing operation

  `acos`() → systemds.operator.nodes.matrix.Matrix

    Calculate arccos.

    Returns

      Matrix representing operation

  `asin`() → systemds.operator.nodes.matrix.Matrix

    Calculate arcsin.

    Returns

      Matrix representing operation

  `atan`() → systemds.operator.nodes.matrix.Matrix

    Calculate arctan.

    Returns

      Matrix representing operation

  `cbind`(other) → systemds.operator.nodes.matrix.Matrix

    Column-wise matrix concatenation, by concatenating the second matrix as additional columns to the first matrix. :param: The other matrix to bind to the right hand side. :return: The OperationNode containing the concatenated matrices/frames.

  `cholesky`(safe: bool = False) → systemds.operator.nodes.matrix.Matrix

    Computes the Cholesky decomposition of a symmetric, positive definite matrix

    Parameters

      safe – default value is False, if flag is True additional checks to ensure that the matrix is symmetric positive definite are applied, if False, checks will be skipped

    Returns

      the OperationNode representing this operation

  `code_line`(var_name: str, unnamed_input_vars: Sequence[str], named_input_vars: Dict[str, str]) → str

    Generates the DML code line equal to the intended action of this node.

    Parameters

      - var_name – Name of DML-variable this nodes result should be saved in

      - unnamed_input_vars – all strings representing the unnamed parameters

      - named_input_vars – all strings representing the named parameters (name value pairs)

    Returns

      the DML code line that is equal to this operation

  `compute`(verbose: bool = False, lineage: bool = False) → numpy.array

    Get result of this operation. Builds the dml script and executes it in SystemDS, before this method is called all operations are only building the DAG without actually executing (lazy evaluation).

    Parameters

      - verbose – Can be activated to print additional information such as created DML-Script

      - lineage – Can be activated to print lineage trace till this node

    Returns

      the output as an python builtin data type or numpy array

  `cos`() → systemds.operator.nodes.matrix.Matrix

    Calculate cos.

    Returns

      Matrix representing operation

  `cosh`() → systemds.operator.nodes.matrix.Matrix

    Calculate cos.

    Returns

      Matrix representing operation

  `mean`(axis: int = None) → systemds.operator.operation_node.OperationNode

    Calculate mean of matrix.

    Parameters

      axis – can be 0 or 1 to do either row or column means

    Returns

      Matrix representing operation

  `order`(by: int = 1, decreasing: bool = False, index_return: bool = False) → systemds.operator.nodes.matrix.Matrix

    Sort by a column of the matrix X in increasing/decreasing order and returns either the index or data

    Parameters

      - by – sort matrix by this column number

      - decreasing – If true the matrix will be sorted in decreasing order

      - index_return – If true, the index numbers will be returned

    Returns

      the OperationNode representing this operation

  `pass_python_data_to_prepared_script`(sds, var_name: str, prepared_script: py4j.java_gateway.JavaObject) → None

    Passes data from python to the prepared script object.

    Parameters

      - jvm – the java virtual machine object

      - var_name – the variable name the data should get in java

      - prepared_script – the prepared script

  `rbind`(other) → systemds.operator.nodes.matrix.Matrix

    Row-wise matrix concatenation, by concatenating the second matrix as additional rows to the first matrix. :param: The other matrix to bind to the right hand side :return: The OperationNode containing the concatenated matrices/frames.

  `rev`() → systemds.operator.nodes.matrix.Matrix

    Reverses the rows

    Returns

      the OperationNode representing this operation

  `sin`() → systemds.operator.nodes.matrix.Matrix

    Calculate sin.

    Returns

      Matrix representing operation

  `sinh`() → systemds.operator.nodes.matrix.Matrix

    Calculate sin.

    Returns

      Matrix representing operation

  `sum`(axis: int = None) → systemds.operator.operation_node.OperationNode

    Calculate sum of matrix.

    Parameters

      axis – can be 0 or 1 to do either row or column sums

    Returns

      Matrix representing operation

  `t`() → systemds.operator.nodes.matrix.Matrix

    Transposes the input

    Returns

      the OperationNode representing this operation

  `tan`() → systemds.operator.nodes.matrix.Matrix

    Calculate tan.

    Returns

      Matrix representing operation

  `tanh`() → systemds.operator.nodes.matrix.Matrix

    Calculate tan.

    Returns

      Matrix representing operation

  `to_one_hot`(num_classes: int) → systemds.operator.nodes.matrix.Matrix

    OneHot encode the matrix.

    It is assumed that there is only one column to encode, and all values are whole numbers > 0

    Parameters

      num_classes – The number of classes to encode into. max value contained in the matrix must be <= num_classes

    Returns

      The OperationNode containing the oneHotEncoded values

  `to_string`(**kwargs: Dict[str, Union[DAGNode, str, int, float, bool]]) → Matrix

    Converts the input to a string representation. :return: Scalar containing the string.

  `var`(axis: int = None) → systemds.operator.operation_node.OperationNode

    Calculate variance of matrix.

    Parameters

      axis – can be 0 or 1 to do either row or column vars

    Returns

      Matrix representing operation