NDArray API

Overview

This document lists the routines of the n-dimensional array package:

mxnet.ndarray

The NDArray API, defined in the ndarray (or simply nd) package, provides imperative tensor operations on CPU/GPU. An NDArray represents a multi-dimensional, fixed-size homogenous array.

>>> x = mx.nd.array([[1, 2, 3], [4, 5, 6]])
>>> type(x)

>>> x.shape
(2, 3)
>>> y = x + mx.nd.ones(x.shape)*3
>>> print(y.asnumpy())
[[ 4.  5.  6.]
 [ 7.  8.  9.]]
>>> z = y.as_in_context(mx.gpu(0))
>>> print(z)

A detailed tutorial is available at NDArray - Imperative tensor operations on CPU/GPU.

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.

In the rest of this document, we first overview the methods provided by the ndarray.NDArray class, and then list other routines provided by the ndarray package.

The NDArray class

Array attributes

NDArray.shape
NDArray.size
NDArray.context
NDArray.dtype

Array conversion

NDArray.copy
NDArray.copyto
NDArray.as_in_context
NDArray.asnumpy
NDArray.asscalar
NDArray.astype

Array change shape

NDArray.T
NDArray.reshape
NDArray.broadcast_to

Arithmetic operations

NDArray.__add__
NDArray.__sub__
NDArray.__rsub__
NDArray.__neg__
NDArray.__mul__
NDArray.__div__
NDArray.__rdiv__
NDArray.__mod__
NDArray.__rmod__
NDArray.__pow__

In-place arithmetic operations

NDArray.__iadd__
NDArray.__isub__
NDArray.__imul__
NDArray.__idiv__
NDArray.__imod__

Comparison operators

NDArray.__lt__
NDArray.__le__
NDArray.__gt__
NDArray.__ge__
NDArray.__eq__
NDArray.__ne__

Indexing

NDArray.__getitem__
NDArray.__setitem__

Lazy evaluation

NDArray.wait_to_read

Array creation routines

array This module defines an object type which can efficiently represent an array of basic values: characters, integers, floating point numbers.
empty
zeros
ones
full
arange
load
save

Array manipulation routines

Changing array shape and type

cast
reshape
flatten
expand_dims

Expanding array elements

broadcast_to
broadcast_axes
repeat
tile
pad

Rearranging elements

transpose
swapaxes
flip

Joining and splitting arrays

concat
split

Indexing routines

slice
slice_axis
take
batch_take
one_hot
pick

Mathematical functions

Arithmetic operations

add
subtract
negative
multiply
divide
modulo
dot
batch_dot
add_n

Trigonometric functions

sin
cos
tan
arcsin
arccos
arctan
degrees
radians

Hyperbolic functions

sinh
cosh
tanh
arcsinh
arccosh
arctanh

Reduce functions

sum
nansum
prod
nanprod
mean
max
min
norm

Rounding

round
rint
fix
floor
ceil
trunc

Exponents and logarithms

exp
expm1
log
log10
log2
log1p

Powers

power
sqrt
rsqrt
square

Logic functions

equal
not_equal
greater
greater_equal
lesser
lesser_equal

Random sampling

random_uniform
random_normal
random_gamma
random_exponential
random_poisson
random_negative_binomial
random_generalized_negative_binomial
mxnet.random.seed

Sorting and searching

sort
topk
argsort
argmax
argmin

Miscellaneous

maximum
minimum
clip
abs
sign
gamma
gammaln

Neural network

Basic

FullyConnected
Convolution
Activation
BatchNorm
Pooling
SoftmaxOutput
softmax
log_softmax

More

Correlation
Deconvolution
RNN
Embedding
LeakyReLU
InstanceNorm
L2Normalization
LRN
ROIPooling
SoftmaxActivation
Dropout
BilinearSampler
GridGenerator
UpSampling
SpatialTransformer
LinearRegressionOutput
LogisticRegressionOutput
MAERegressionOutput
SVMOutput
softmax_cross_entropy
smooth_l1
IdentityAttachKLSparseReg
MakeLoss
BlockGrad
Custom

Contrib

Warning

This package contains experimental APIs and may change in the near future.

The contrib.ndarray module contains many useful experimental APIs for new features. This is a place for the community to try out the new features, so that feature contributors can receive feedback.

CTCLoss
DeformableConvolution
DeformablePSROIPooling
MultiBoxDetection
MultiBoxPrior
MultiBoxTarget
MultiProposal
PSROIPooling
Proposal
count_sketch
ctc_loss
dequantize
fft
ifft
quantize

API Reference