.. Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
mxnet.ndarray
=============
The NDArray library in Apache MXNet defines the core data structure for all mathematical computations. NDArray supports fast execution on a wide range of hardware configurations and automatically parallelizes multiple operations across the available hardware.
Example
-------
The following example shows how you can create an NDArray from a regular Python list using the 'array' function.
.. code-block:: python
import mxnet as mx
# create a 1-dimensional array with a python list
a = mx.nd.array([1,2,3])
# create a 2-dimensional array with a nested python list
b = mx.nd.array([[1,2,3], [2,3,4]])
{'a.shape':a.shape, 'b.shape':b.shape}
.. note:: ``mxnet.ndarray`` is similar to ``numpy.ndarray`` in some aspects. But the differences are not negligible. For instance:
- ``mxnet.ndarray.NDArray.T`` does real data transpose to return new a copied
array, instead of returning a view of the input array.
- ``mxnet.ndarray.dot`` performs dot product between the last axis of the
first input array and the first axis of the second input, while `numpy.dot`
uses the second last axis of the input array.
In addition, ``mxnet.ndarray.NDArray`` supports GPU computation and various neural
network layers.
.. note:: ``ndarray`` provides almost the same routines as ``symbol``. Most
routines between these two packages share the source code. But ``ndarray``
differs from ``symbol`` in few aspects:
- ``ndarray`` adopts imperative programming, namely sentences are executed
step-by-step so that the results can be obtained immediately whereas
``symbol`` adopts declarative programming.
- Most binary operators in ``ndarray`` such as ``+`` and ``>`` have
broadcasting enabled by default.
Tutorials
---------
.. container:: cards
.. card::
:title: NDArray Guide
:link: ../../tutorials/packages/ndarray/
The NDArray guide. Start here!
NDArray API of MXNet
--------------------
.. container:: cards
.. card::
:title: NDArray
:link: ndarray.html
Imperative tensor operations using the NDArray API.
Sparse NDArray API of MXNet
---------------------------
.. container:: cards
.. card::
:title: Sparse routines
:link: sparse/index.html
Representing and manipulating sparse arrays.
.. toctree::
:hidden:
:maxdepth: 2
:glob:
ndarray
*/index