tmp
/
pip-install-ghxuqwgs
/numpy_78e94bf2b6094bf9a1f3d92042f9bf46
/build
/lib.linux-x86_64-cpython-310
/numpy
/doc
/glossary.py
| """ | |
| ======== | |
| Glossary | |
| ======== | |
| .. glossary:: | |
| along an axis | |
| Axes are defined for arrays with more than one dimension. A | |
| 2-dimensional array has two corresponding axes: the first running | |
| vertically downwards across rows (axis 0), and the second running | |
| horizontally across columns (axis 1). | |
| Many operation can take place along one of these axes. For example, | |
| we can sum each row of an array, in which case we operate along | |
| columns, or axis 1:: | |
| >>> x = np.arange(12).reshape((3,4)) | |
| >>> x | |
| array([[ 0, 1, 2, 3], | |
| [ 4, 5, 6, 7], | |
| [ 8, 9, 10, 11]]) | |
| >>> x.sum(axis=1) | |
| array([ 6, 22, 38]) | |
| array | |
| A homogeneous container of numerical elements. Each element in the | |
| array occupies a fixed amount of memory (hence homogeneous), and | |
| can be a numerical element of a single type (such as float, int | |
| or complex) or a combination (such as ``(float, int, float)``). Each | |
| array has an associated data-type (or ``dtype``), which describes | |
| the numerical type of its elements:: | |
| >>> x = np.array([1, 2, 3], float) | |
| >>> x | |
| array([ 1., 2., 3.]) | |
| >>> x.dtype # floating point number, 64 bits of memory per element | |
| dtype('float64') | |
| # More complicated data type: each array element is a combination of | |
| # and integer and a floating point number | |
| >>> np.array([(1, 2.0), (3, 4.0)], dtype=[('x', int), ('y', float)]) | |
| array([(1, 2.0), (3, 4.0)], | |
| dtype=[('x', '<i4'), ('y', '<f8')]) | |
| Fast element-wise operations, called `ufuncs`_, operate on arrays. | |
| array_like | |
| Any sequence that can be interpreted as an ndarray. This includes | |
| nested lists, tuples, scalars and existing arrays. | |
| attribute | |
| A property of an object that can be accessed using ``obj.attribute``, | |
| e.g., ``shape`` is an attribute of an array:: | |
| >>> x = np.array([1, 2, 3]) | |
| >>> x.shape | |
| (3,) | |
| BLAS | |
| `Basic Linear Algebra Subprograms <http://en.wikipedia.org/wiki/BLAS>`_ | |
| broadcast | |
| NumPy can do operations on arrays whose shapes are mismatched:: | |
| >>> x = np.array([1, 2]) | |
| >>> y = np.array([[3], [4]]) | |
| >>> x | |
| array([1, 2]) | |
| >>> y | |
| array([[3], | |
| [4]]) | |
| >>> x + y | |
| array([[4, 5], | |
| [5, 6]]) | |
| See `doc.broadcasting`_ for more information. | |
| C order | |
| See `row-major` | |
| column-major | |
| A way to represent items in a N-dimensional array in the 1-dimensional | |
| computer memory. In column-major order, the leftmost index "varies the | |
| fastest": for example the array:: | |
| [[1, 2, 3], | |
| [4, 5, 6]] | |
| is represented in the column-major order as:: | |
| [1, 4, 2, 5, 3, 6] | |
| Column-major order is also known as the Fortran order, as the Fortran | |
| programming language uses it. | |
| decorator | |
| An operator that transforms a function. For example, a ``log`` | |
| decorator may be defined to print debugging information upon | |
| function execution:: | |
| >>> def log(f): | |
| ... def new_logging_func(*args, **kwargs): | |
| ... print "Logging call with parameters:", args, kwargs | |
| ... return f(*args, **kwargs) | |
| ... | |
| ... return new_logging_func | |
| Now, when we define a function, we can "decorate" it using ``log``:: | |
| >>> @log | |
| ... def add(a, b): | |
| ... return a + b | |
| Calling ``add`` then yields: | |
| >>> add(1, 2) | |
| Logging call with parameters: (1, 2) {} | |
| 3 | |
| dictionary | |
| Resembling a language dictionary, which provides a mapping between | |
| words and descriptions thereof, a Python dictionary is a mapping | |
| between two objects:: | |
| >>> x = {1: 'one', 'two': [1, 2]} | |
| Here, `x` is a dictionary mapping keys to values, in this case | |
| the integer 1 to the string "one", and the string "two" to | |
| the list ``[1, 2]``. The values may be accessed using their | |
| corresponding keys:: | |
| >>> x[1] | |
| 'one' | |
| >>> x['two'] | |
| [1, 2] | |
| Note that dictionaries are not stored in any specific order. Also, | |
| most mutable (see *immutable* below) objects, such as lists, may not | |
| be used as keys. | |
| For more information on dictionaries, read the | |
| `Python tutorial <http://docs.python.org/tut>`_. | |
| Fortran order | |
| See `column-major` | |
| flattened | |
| Collapsed to a one-dimensional array. See `ndarray.flatten`_ for details. | |
| immutable | |
| An object that cannot be modified after execution is called | |
| immutable. Two common examples are strings and tuples. | |
| instance | |
| A class definition gives the blueprint for constructing an object:: | |
| >>> class House(object): | |
| ... wall_colour = 'white' | |
| Yet, we have to *build* a house before it exists:: | |
| >>> h = House() # build a house | |
| Now, ``h`` is called a ``House`` instance. An instance is therefore | |
| a specific realisation of a class. | |
| iterable | |
| A sequence that allows "walking" (iterating) over items, typically | |
| using a loop such as:: | |
| >>> x = [1, 2, 3] | |
| >>> [item**2 for item in x] | |
| [1, 4, 9] | |
| It is often used in combintion with ``enumerate``:: | |
| >>> keys = ['a','b','c'] | |
| >>> for n, k in enumerate(keys): | |
| ... print "Key %d: %s" % (n, k) | |
| ... | |
| Key 0: a | |
| Key 1: b | |
| Key 2: c | |
| list | |
| A Python container that can hold any number of objects or items. | |
| The items do not have to be of the same type, and can even be | |
| lists themselves:: | |
| >>> x = [2, 2.0, "two", [2, 2.0]] | |
| The list `x` contains 4 items, each which can be accessed individually:: | |
| >>> x[2] # the string 'two' | |
| 'two' | |
| >>> x[3] # a list, containing an integer 2 and a float 2.0 | |
| [2, 2.0] | |
| It is also possible to select more than one item at a time, | |
| using *slicing*:: | |
| >>> x[0:2] # or, equivalently, x[:2] | |
| [2, 2.0] | |
| In code, arrays are often conveniently expressed as nested lists:: | |
| >>> np.array([[1, 2], [3, 4]]) | |
| array([[1, 2], | |
| [3, 4]]) | |
| For more information, read the section on lists in the `Python | |
| tutorial <http://docs.python.org/tut>`_. For a mapping | |
| type (key-value), see *dictionary*. | |
| mask | |
| A boolean array, used to select only certain elements for an operation:: | |
| >>> x = np.arange(5) | |
| >>> x | |
| array([0, 1, 2, 3, 4]) | |
| >>> mask = (x > 2) | |
| >>> mask | |
| array([False, False, False, True, True], dtype=bool) | |
| >>> x[mask] = -1 | |
| >>> x | |
| array([ 0, 1, 2, -1, -1]) | |
| masked array | |
| Array that suppressed values indicated by a mask:: | |
| >>> x = np.ma.masked_array([np.nan, 2, np.nan], [True, False, True]) | |
| >>> x | |
| masked_array(data = [-- 2.0 --], | |
| mask = [ True False True], | |
| fill_value = 1e+20) | |
| <BLANKLINE> | |
| >>> x + [1, 2, 3] | |
| masked_array(data = [-- 4.0 --], | |
| mask = [ True False True], | |
| fill_value = 1e+20) | |
| <BLANKLINE> | |
| Masked arrays are often used when operating on arrays containing | |
| missing or invalid entries. | |
| matrix | |
| A 2-dimensional ndarray that preserves its two-dimensional nature | |
| throughout operations. It has certain special operations, such as ``*`` | |
| (matrix multiplication) and ``**`` (matrix power), defined:: | |
| >>> x = np.mat([[1, 2], [3, 4]]) | |
| >>> x | |
| matrix([[1, 2], | |
| [3, 4]]) | |
| >>> x**2 | |
| matrix([[ 7, 10], | |
| [15, 22]]) | |
| method | |
| A function associated with an object. For example, each ndarray has a | |
| method called ``repeat``:: | |
| >>> x = np.array([1, 2, 3]) | |
| >>> x.repeat(2) | |
| array([1, 1, 2, 2, 3, 3]) | |
| ndarray | |
| See *array*. | |
| reference | |
| If ``a`` is a reference to ``b``, then ``(a is b) == True``. Therefore, | |
| ``a`` and ``b`` are different names for the same Python object. | |
| row-major | |
| A way to represent items in a N-dimensional array in the 1-dimensional | |
| computer memory. In row-major order, the rightmost index "varies | |
| the fastest": for example the array:: | |
| [[1, 2, 3], | |
| [4, 5, 6]] | |
| is represented in the row-major order as:: | |
| [1, 2, 3, 4, 5, 6] | |
| Row-major order is also known as the C order, as the C programming | |
| language uses it. New Numpy arrays are by default in row-major order. | |
| self | |
| Often seen in method signatures, ``self`` refers to the instance | |
| of the associated class. For example: | |
| >>> class Paintbrush(object): | |
| ... color = 'blue' | |
| ... | |
| ... def paint(self): | |
| ... print "Painting the city %s!" % self.color | |
| ... | |
| >>> p = Paintbrush() | |
| >>> p.color = 'red' | |
| >>> p.paint() # self refers to 'p' | |
| Painting the city red! | |
| slice | |
| Used to select only certain elements from a sequence:: | |
| >>> x = range(5) | |
| >>> x | |
| [0, 1, 2, 3, 4] | |
| >>> x[1:3] # slice from 1 to 3 (excluding 3 itself) | |
| [1, 2] | |
| >>> x[1:5:2] # slice from 1 to 5, but skipping every second element | |
| [1, 3] | |
| >>> x[::-1] # slice a sequence in reverse | |
| [4, 3, 2, 1, 0] | |
| Arrays may have more than one dimension, each which can be sliced | |
| individually:: | |
| >>> x = np.array([[1, 2], [3, 4]]) | |
| >>> x | |
| array([[1, 2], | |
| [3, 4]]) | |
| >>> x[:, 1] | |
| array([2, 4]) | |
| tuple | |
| A sequence that may contain a variable number of types of any | |
| kind. A tuple is immutable, i.e., once constructed it cannot be | |
| changed. Similar to a list, it can be indexed and sliced:: | |
| >>> x = (1, 'one', [1, 2]) | |
| >>> x | |
| (1, 'one', [1, 2]) | |
| >>> x[0] | |
| 1 | |
| >>> x[:2] | |
| (1, 'one') | |
| A useful concept is "tuple unpacking", which allows variables to | |
| be assigned to the contents of a tuple:: | |
| >>> x, y = (1, 2) | |
| >>> x, y = 1, 2 | |
| This is often used when a function returns multiple values: | |
| >>> def return_many(): | |
| ... return 1, 'alpha', None | |
| >>> a, b, c = return_many() | |
| >>> a, b, c | |
| (1, 'alpha', None) | |
| >>> a | |
| 1 | |
| >>> b | |
| 'alpha' | |
| ufunc | |
| Universal function. A fast element-wise array operation. Examples include | |
| ``add``, ``sin`` and ``logical_or``. | |
| view | |
| An array that does not own its data, but refers to another array's | |
| data instead. For example, we may create a view that only shows | |
| every second element of another array:: | |
| >>> x = np.arange(5) | |
| >>> x | |
| array([0, 1, 2, 3, 4]) | |
| >>> y = x[::2] | |
| >>> y | |
| array([0, 2, 4]) | |
| >>> x[0] = 3 # changing x changes y as well, since y is a view on x | |
| >>> y | |
| array([3, 2, 4]) | |
| wrapper | |
| Python is a high-level (highly abstracted, or English-like) language. | |
| This abstraction comes at a price in execution speed, and sometimes | |
| it becomes necessary to use lower level languages to do fast | |
| computations. A wrapper is code that provides a bridge between | |
| high and the low level languages, allowing, e.g., Python to execute | |
| code written in C or Fortran. | |
| Examples include ctypes, SWIG and Cython (which wraps C and C++) | |
| and f2py (which wraps Fortran). | |
| """ | |
| from __future__ import division, absolute_import, print_function | |