:mod:`ulab` =========== .. py:module:: ulab .. autoapi-nested-parse:: Manipulate numeric data similar to numpy `ulab` is a numpy-like module for micropython, meant to simplify and speed up common mathematical operations on arrays. The primary goal was to implement a small subset of numpy that might be useful in the context of a microcontroller. This means low-level data processing of linear (array) and two-dimensional (matrix) data. `ulab` is adapted from micropython-ulab, and the original project's documentation can be found at https://micropython-ulab.readthedocs.io/en/latest/ `ulab` is modeled after numpy, and aims to be a compatible subset where possible. Numpy's documentation can be found at https://docs.scipy.org/doc/numpy/index.html .. toctree:: :maxdepth: 2 approx/index.rst compare/index.rst fft/index.rst filter/index.rst linalg/index.rst numerical/index.rst poly/index.rst user/index.rst vector/index.rst .. py:class:: array(values, *, dtype=float) 1- and 2- dimensional array :param sequence values: Sequence giving the initial content of the array. :param dtype: The type of array values, ``int8``, ``uint8``, ``int16``, ``uint16``, or ``float`` The `values` sequence can either be another ~ulab.array, sequence of numbers (in which case a 1-dimensional array is created), or a sequence where each subsequence has the same length (in which case a 2-dimensional array is created). Passing a ~ulab.array and a different dtype can be used to convert an array from one dtype to another. In many cases, it is more convenient to create an array from a function like `zeros` or `linspace`. `ulab.array` implements the buffer protocol, so it can be used in many places an `array.array` can be used. .. attribute:: shape :annotation: :tuple The size of the array, a tuple of length 1 or 2 .. attribute:: size :annotation: :int The number of elements in the array .. attribute:: itemsize :annotation: :int The number of elements in the array .. method:: flatten(self, *, order='C') :param order: Whether to flatten by rows ('C') or columns ('F') Returns a new `ulab.array` object which is always 1 dimensional. If order is 'C' (the default", then the data is ordered in rows; If it is 'F', then the data is ordered in columns. "C" and "F" refer to the typical storage organization of the C and Fortran languages. .. method:: sort(self, *, axis=1) :param axis: Whether to sort elements within rows (0), columns (1), or elements (None) .. method:: transpose(self) Swap the rows and columns of a 2-dimensional array .. method:: __add__(self) Adds corresponding elements of the two arrays, or adds a number to all elements of the array. If both arguments are arrays, their sizes must match. .. method:: __sub__(self) Subtracts corresponding elements of the two arrays, or adds a number to all elements of the array. If both arguments are arrays, their sizes must match. .. method:: __mul__(self) Multiplies corresponding elements of the two arrays, or multiplies all elements of the array by a number. If both arguments are arrays, their sizes must match. .. method:: __div__(self) Multiplies corresponding elements of the two arrays, or divides all elements of the array by a number. If both arguments are arrays, their sizes must match. .. method:: __pow__() Computes the power (x**y) of corresponding elements of the the two arrays, or one number and one array. If both arguments are arrays, their sizes must match. .. method:: __getitem__() Retrieve an element of the array. .. method:: __setitem__() Set an element of the array. .. data:: int8 Type code for signed integers in the range -128 .. 127 inclusive, like the 'b' typecode of `array.array` .. data:: int16 Type code for signed integers in the range -32768 .. 32767 inclusive, like the 'h' typecode of `array.array` .. data:: float Type code for floating point values, like the 'f' typecode of `array.array` .. data:: uint8 Type code for unsigned integers in the range 0 .. 255 inclusive, like the 'H' typecode of `array.array` .. data:: uint16 Type code for unsigned integers in the range 0 .. 65535 inclusive, like the 'h' typecode of `array.array` .. function:: arange(start, stop, step, dtype=float) .. param: start First value in the array, optional, defaults to 0 .. param: stop Final value in the array .. param: step Difference between consecutive elements, optional, defaults to 1.0 .. param: dtype Type of values in the array Return a new 1-D array with elements ranging from ``start`` to ``stop``, with step size ``step``. .. function:: eye(size, \*, dtype=float) Return a new square array of size, with the diagonal elements set to 1 and the other elements set to 0. .. function:: linspace(start, stop, \*, dtype=float, num=50, endpoint=True) .. param: start First value in the array .. param: stop Final value in the array .. param int: num Count of values in the array .. param: dtype Type of values in the array .. param bool: endpoint Whether the ``stop`` value is included. Note that even when endpoint=True, the exact ``stop`` value may not be included due to the inaccuracy of floating point arithmetic. Return a new 1-D array with ``num`` elements ranging from ``start`` to ``stop`` linearly. .. function:: ones(shape, \*, dtype=float) .. param: shape Shape of the array, either an integer (for a 1-D array) or a tuple of 2 integers (for a 2-D array) .. param: dtype Type of values in the array Return a new array of the given shape with all elements set to 1. .. function:: zeros(shape, \*, dtype) .. param: shape Shape of the array, either an integer (for a 1-D array) or a tuple of 2 integers (for a 2-D array) .. param: dtype Type of values in the array Return a new array of the given shape with all elements set to 0.