Class NDArrayAdapter
- All Implemented Interfaces:
BytesSupplier
,NDArray
,NDResource
,AutoCloseable
NDArray
that does nothing. This can be used for overriding
the NDArray with only part of the interface implemented.
This interface should only be used for the NDArray implementations that do not plan to
implement a large portion of the interface. For the ones that do, they should directly implement
NDArray
so that the unsupported operations are better highlighted in the code.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabs()
Returns the absolute value of thisNDArray
element-wise.acos()
Returns the inverse trigonometric cosine of thisNDArray
element-wise.acosh()
Returns the inverse hyperbolic cosine of thisNDArray
element-wise.Adds otherNDArray
s to thisNDArray
element-wise.Adds a number to thisNDArray
element-wise.Adds otherNDArray
s to thisNDArray
element-wise in place.Adds a number to thisNDArray
element-wise in place.argMax()
Returns the indices of the maximum values into the flattenedNDArray
.argMax
(int axis) Returns the indices of the maximum values along given axis.argMin()
Returns the indices of the minimum values into the flattenedNDArray
.argMin
(int axis) Returns the indices of the minimum values along given axis.argSort
(int axis, boolean ascending) Returns the indices that would sort thisNDArray
given the axis.asin()
Returns the inverse trigonometric sine of thisNDArray
element-wise.asinh()
Returns the inverse hyperbolic sine of thisNDArray
element-wise.atan()
Returns the inverse trigonometric tangent of thisNDArray
element-wise.Returns the element-wise arc-tangent of this/other choosing the quadrant correctly.atanh()
Returns the inverse hyperbolic tangent of thisNDArray
element-wise.void
Attaches thisNDResource
to the specifiedNDManager
.Batchwise product of thisNDArray
and the otherNDArray
.batchMatMul
(NDArray other) Batch product matrix of thisNDArray
and the otherNDArray
.booleanMask
(NDArray index, int axis) Returns portion of thisNDArray
given the index booleanNDArray
along given axis.Broadcasts thisNDArray
to be the given shape.cbrt()
Returns the cube-root of thisNDArray
element-wise.ceil()
Returns the ceiling of thisNDArray
element-wise.Clips (limit) the values in thisNDArray
.void
close()
complex()
Convert a general NDArray to its complex math format.conj()
Conjugate complex array.boolean
contentEquals
(NDArray other) boolean
contentEquals
(Number number) cos()
Returns the trigonometric cosine of thisNDArray
element-wise.cosh()
Returns the hyperbolic cosine of thisNDArray
element-wise.cumProd
(int axis) Returns the cumulative product of elements of input in the dimension dim.Returns the cumulative product of elements of input in the dimension dim.cumSum()
Returns the cumulative sum of the elements in the flattenedNDArray
.cumSum
(int axis) Return the cumulative sum of the elements along a given axis.Divides thisNDArray
by the otherNDArray
element-wise.Divides thisNDArray
by a number element-wise.Divides thisNDArray
by the otherNDArray
element-wise in place.Divides thisNDArray
by a number element-wise in place.Dot product of thisNDArray
and the otherNDArray
.Returns the booleanNDArray
for element-wise "Equals" comparison.Returns the booleanNDArray
for element-wise "Equals" comparison.boolean
erf()
Returns element-wise gauss error function of theNDArray
.erfinv()
Returns element-wise inverse gauss error function of theNDArray
.exp()
Returns the exponential value of thisNDArray
element-wise.expandDims
(int axis) Expands theShape
of aNDArray
.fft
(long length, long axis) Computes the one-dimensional discrete Fourier Transform.fft2
(long[] sizes, long[] axes) Computes the two-dimensional Discrete Fourier Transform.flatten()
Flattens thisNDArray
into a 1-DNDArray
in row-major order.flatten
(int startDim, int endDim) Flattens thisNDArray
into a partially flattenNDArray
.flip
(int... axes) Returns the reverse order of elements in an array along the given axis.floor()
Returns the floor of thisNDArray
element-wise.gammaln()
Return the log of the absolute value of the gamma function of thisNDArray
element-wise.Returns a partialNDArray
pointed by the indexed array.Returns a partialNDArray
pointed by the indexed array.Returns a partialNDArray
.Returns theDataType
of thisNDArray
.Returns theDevice
of thisNDArray
.Returns the gradientNDArray
attached to thisNDArray
.Returns theNDManager
that manages this.getName()
Returns the name of thisNDArray
.ai.djl.ndarray.internal.NDArrayEx
Returns an internal representative of NativeNDArray
.getShape()
Returns theShape
of thisNDArray
.Returns theSparseFormat
of thisNDArray
.getUid()
Returns unique identifier of thisNDArray
.Returns the booleanNDArray
for element-wise "Greater Than" comparison.Returns the booleanNDArray
for element-wise "Greater" comparison.Returns the booleanNDArray
for element-wise "Greater or equals" comparison.Returns the booleanNDArray
for element-wise "Greater or equals" comparison.boolean
Returns true if the gradient calculation is required for thisNDArray
.int
hashCode()
ifft
(long length, long axis) Computes the one dimensional inverse discrete Fourier transform.ifft2
(long[] sizes, long[] axes) Computes the two-dimensional inverse Discrete Fourier Transform.inverse()
Computes the inverse of squareNDArray
if it exists.irfft
(long length, long axis) Computes the one dimensional inverse Fourier transform of real-valued input.Returns the booleanNDArray
with valuetrue
where thisNDArray
's entries are infinite, orfalse
where they are not infinite.isNaN()
Returns the booleanNDArray
with valuetrue
where thisNDArray
's entries are NaN, orfalse
where they are not NaN.boolean
Returnstrue
if this NDArray has been released.log()
Returns the natural logarithmic value of thisNDArray
element-wise.log10()
Returns the base 10 logarithm of thisNDArray
element-wise.log2()
Returns the base 2 logarithm of thisNDArray
element-wise.logicalAnd
(NDArray other) Returns the truth value of thisNDArray
AND the otherNDArray
element-wise.Computes the truth value of NOT thisNDArray
element-wise.Computes the truth value of thisNDArray
OR the otherNDArray
element-wise.logicalXor
(NDArray other) Computes the truth value of thisNDArray
XOR the otherNDArray
element-wise.logSoftmax
(int axis) Applies the softmax function followed by a logarithm.Returns the booleanNDArray
for element-wise "Less" comparison.Returns the booleanNDArray
for element-wise "Less" comparison.Returns the booleanNDArray
for element-wise "Less or equals" comparison.Returns the booleanNDArray
for element-wise "Less or equals" comparison.Product matrix of thisNDArray
and the otherNDArray
.max()
Returns the maximum of thisNDArray
.max
(int[] axes, boolean keepDims) Returns the maximum of thisNDArray
along given axes.Returns the maximum of thisNDArray
and the otherNDArray
element-wise.Returns the maximum of thisNDArray
and a number element-wise.mean()
Returns the average of thisNDArray
.mean
(int[] axes, boolean keepDims) Returns the average of thisNDArray
along given axes.median()
Returns median value for thisNDArray
.median
(int[] axes) Returns median value along given axes.min()
Returns the minimum of thisNDArray
.min
(int[] axes, boolean keepDims) Returns the minimum of thisNDArray
along given axes.Returns the minimum of thisNDArray
and the otherNDArray
element-wise.Returns the minimum of thisNDArray
and a number element-wise.Returns element-wise remainder of division.Returns element-wise remainder of division.Returns in place element-wise remainder of division in place.Returns element-wise remainder of division in place.Multiplies thisNDArray
by otherNDArray
s element-wise.Multiplies thisNDArray
by a number element-wise.Multiplies thisNDArray
by otherNDArray
element-wise in place.Multiplies thisNDArray
by a number element-wise in place.neg()
Returns the numerical negativeNDArray
element-wise.negi()
Returns the numerical negativeNDArray
element-wise in place.Returns the booleanNDArray
for element-wise "Not equals" comparison.Returns the booleanNDArray
for element-wise "Not equals" comparison.nonzero()
Returns the indices of elements that are non-zero.norm
(boolean keepDims) Returns the norm of thisNDArray
.norm
(int ord, int[] axes, boolean keepDims) Returns the norm of thisNDArray
.normalize
(double p, long dim, double eps) Performs Lp normalization of the array over specified dimension.Returns a one-hotNDArray
.Pads thisNDArray
with the givenShape
.percentile
(Number percentile) Returns percentile for thisNDArray
.percentile
(Number percentile, int[] axes) Returns median along given dimension(s).Takes the power of thisNDArray
with the otherNDArray
element-wise.Takes the power of thisNDArray
with a number element-wise.Takes the power of thisNDArray
with the otherNDArray
element-wise in place.Takes the power of thisNDArray
with a number element-wise in place.prod()
Returns the product of thisNDArray
.prod
(int[] axes, boolean keepDims) Returns the product of thisNDArray
elements over the given axes.Sets the entries ofNDArray
pointed by index, according to linear indexing, to be the numbers in value.real()
Convert a complex NDArray to its real math format.repeat
(int axis, long repeats) Repeats element of thisNDArray
the number of times given repeats along given axis.repeat
(long repeats) Repeats element of thisNDArray
the number of times given repeats.repeat
(long[] repeats) Repeats element of thisNDArray
the number of times given repeats along each axis.Repeats element of thisNDArray
to match the desired shape.Reshapes thisNDArray
to the givenShape
.rfft
(long length, long axis) Computes the one dimensional Fourier transform of real-valued input.rotate90
(int times, int[] axes) Rotates an array by 90 degrees in the plane specified by axes.round()
Returns the round of thisNDArray
element-wise.Writes all values from the tensor value into self at the indices specified in the index tensor.sequenceMask
(NDArray sequenceLength) Sets all elements outside the sequence to 0.sequenceMask
(NDArray sequenceLength, float value) Sets all elements outside the sequence to a constant value.void
Sets the specified index in thisNDArray
with the given values.void
Sets the specified index in thisNDArray
with the given value.void
Sets the specific index by a function.void
Sets theNDArray
by boolean mask or integer index.void
Sets thisNDArray
value fromBuffer
.void
Sets name of thisNDArray
.void
setRequiresGradient
(boolean requiresGrad) Attaches a gradientNDArray
to thisNDArray
and marks it soGradientCollector.backward(NDArray)
can compute the gradient with respect to it.void
Sets the specified scalar in thisNDArray
with the given value.sign()
Returns the element-wise sign.signi()
Returns the element-wise sign in-place.sin()
Returns the trigonometric sine of thisNDArray
element-wise.sinh()
Returns the hyperbolic sine of thisNDArray
element-wise.softmax
(int axis) Applies the softmax function along the given axis.sort()
Sorts the flattenedNDArray
.sort
(int axis) Sorts the flattenedNDArray
.split
(long[] indices, int axis) Splits thisNDArray
into multiple sub-NDArray
s given indices along given axis.split
(long sections, int axis) Splits thisNDArray
into multiple subNDArray
s given sections along the given axis.sqrt()
Returns the square root of thisNDArray
element-wise.square()
Returns the square of thisNDArray
element-wise.squeeze
(int[] axes) Removes singleton dimensions at the given axes.stft
(long nFft, long hopLength, boolean center, NDArray window, boolean normalize, boolean returnComplex) Computes the Short Time Fourier Transform (STFT).Returns an NDArray equal to this that stop gradient propagation through it.Subtracts the otherNDArray
from thisNDArray
element-wise.Subtracts a number from thisNDArray
element-wise.Subtracts the otherNDArray
from thisNDArray
element-wise in place.Subtracts a number from thisNDArray
element-wise in place.sum()
Returns the sum of thisNDArray
.sum
(int[] axes, boolean keepDims) Returns the sum of thisNDArray
along given axes.Returns a partialNDArray
pointed by index according to linear indexing, and the of output is of the same shape as index.tan()
Returns the trigonometric tangent of thisNDArray
element-wise.tanh()
Returns the hyperbolic tangent of thisNDArray
element-wise.void
tempAttach
(NDManager manager) Temporarily attaches thisNDResource
to the specifiedNDManager
.tile
(int axis, long repeats) Constructs aNDArray
by repeating thisNDArray
the number of times given by repeats along given axis.tile
(long repeats) Constructs aNDArray
by repeating thisNDArray
the number of times given repeats.tile
(long[] repeats) Constructs aNDArray
by repeating thisNDArray
the number of times given by repeats.Constructs aNDArray
by repeating thisNDArray
the number of times to match the desired shape.Converts thisNDArray
from radians to degrees element-wise.toDense()
Returns a dense representation of the sparseNDArray
.Moves thisNDArray
to a differentDevice
.topK
(int k, int axis, boolean largest, boolean sorted) Returns (values, indices) of the top k values along given axis.Converts thisNDArray
from degrees to radians element-wise.toSparse
(SparseFormat fmt) Returns a sparse representation ofNDArray
.toString()
String[]
toStringArray
(Charset charset) Converts thisNDArray
to a String array with the specified charset.Converts thisNDArray
to a differentDataType
.trace
(int offset, int axis1, int axis2) Returns the sum along diagonals of thisNDArray
.Returns thisNDArray
with axes transposed.transpose
(int... axes) Returns thisNDArray
with given axes transposed.trunc()
Returns the truncated value of thisNDArray
element-wise.Returns the unique elements of the input tensor.Computes this * log(other).Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface ai.djl.ndarray.BytesSupplier
getAsBytes, getAsObject, getAsString
Methods inherited from interface ai.djl.ndarray.NDArray
all, allClose, allClose, any, argSort, argSort, booleanMask, broadcast, concat, concat, copyTo, countNonzero, countNonzero, duplicate, encode, fft, fft2, get, get, get, get, get, getBoolean, getByte, getDouble, getFloat, getInt, getLong, getResourceNDArrays, getScalar, getUint8, ifft, ifft2, intern, irfft, isEmpty, isScalar, isSparse, like, max, mean, min, none, norm, norm, norm, normalize, normalize, oneHot, oneHot, onesLike, prod, reshape, rfft, scaleGradient, set, set, set, set, set, shapeEquals, size, size, split, split, squeeze, squeeze, stack, stack, stft, sum, swapAxes, take, toArray, toBooleanArray, toByteArray, toByteBuffer, toByteBuffer, toDebugString, toDebugString, toDebugString, toDoubleArray, toFloatArray, toIntArray, toLongArray, topK, toShortArray, toStringArray, toUint8Array, toUnsignedIntArray, toUnsignedShortArray, trace, trace, unique, unique, zerosLike
Methods inherited from interface ai.djl.ndarray.NDResource
detach, returnResource
-
Field Details
-
manager
-
alternativeManager
-
shape
-
dataType
-
name
-
isClosed
protected boolean isClosed -
uid
-
-
Constructor Details
-
NDArrayAdapter
-
-
Method Details
-
getManager
Returns theNDManager
that manages this.- Specified by:
getManager
in interfaceNDResource
- Returns:
- the
NDManager
that manages this.
-
attach
Attaches thisNDResource
to the specifiedNDManager
.Attached resource will be closed when the
NDManager
is closed.- Specified by:
attach
in interfaceNDResource
- Parameters:
manager
- theNDManager
to be attached to
-
tempAttach
Temporarily attaches thisNDResource
to the specifiedNDManager
.Attached resource will be returned to the original manager when the
NDManager
is closed.- Specified by:
tempAttach
in interfaceNDResource
- Parameters:
manager
- theNDManager
to be attached to
-
getSparseFormat
Returns theSparseFormat
of thisNDArray
.- Specified by:
getSparseFormat
in interfaceNDArray
- Returns:
- the
SparseFormat
of thisNDArray
-
getName
Returns the name of thisNDArray
. -
setName
Sets name of thisNDArray
. -
getUid
Returns unique identifier of thisNDArray
. -
getDevice
-
getDataType
Returns theDataType
of thisNDArray
.DataType
is a definition of the precision level of theNDArray
. All values inside the sameNDArray
would have the sameDataType
.- Specified by:
getDataType
in interfaceNDArray
- Returns:
- the
DataType
of thisNDArray
-
getShape
-
toDevice
Moves thisNDArray
to a differentDevice
. -
toType
Converts thisNDArray
to a differentDataType
. -
setRequiresGradient
public void setRequiresGradient(boolean requiresGrad) Attaches a gradientNDArray
to thisNDArray
and marks it soGradientCollector.backward(NDArray)
can compute the gradient with respect to it.- Specified by:
setRequiresGradient
in interfaceNDArray
- Parameters:
requiresGrad
- ifNDArray
requires gradient or not
-
getGradient
Returns the gradientNDArray
attached to thisNDArray
.- Specified by:
getGradient
in interfaceNDArray
- Returns:
- the gradient
NDArray
-
hasGradient
public boolean hasGradient()Returns true if the gradient calculation is required for thisNDArray
.- Specified by:
hasGradient
in interfaceNDArray
- Returns:
- true if the gradient calculation is required for this
NDArray
else false
-
stopGradient
Returns an NDArray equal to this that stop gradient propagation through it.- Specified by:
stopGradient
in interfaceNDArray
- Returns:
- an NDArray equal to this that stops gradient propagation through it
-
toStringArray
Converts thisNDArray
to a String array with the specified charset.This method is only applicable to the String typed NDArray and not for printing purpose
- Specified by:
toStringArray
in interfaceNDArray
- Parameters:
charset
- to charset for the string- Returns:
- Array of Strings
-
gather
Returns a partialNDArray
pointed by the indexed array.out[i][j][k] = input[index[i][j][k]][j][k] # if axis == 0 out[i][j][k] = input[i][index[i][j][k]][k] # if axis == 1 out[i][j][k] = input[i][j][index[i][j][k]] # if axis == 2
-
gatherNd
Returns a partialNDArray
pointed by the indexed array.Given NDArray arr and NDArray idx. idx is the following structure: \( idx = [ idx[0, ...], idx[1, ...],..., idx[indexingDepth,...] ] \) corresponding to x, y, z index, i.e. [idx_x, idx_y, idx_z, ...].
So indexingDepth smaller than or equal to data.shape[0] If indexingDepth is smaller than data.shape[0], for instance, data.shape[0]=3, i.e. x,y,z but indexingDepth = 2, i.e. [idx_x, idx_y], then the tail co-rank = data.shape[0] - indexingDepth will be kept.
With it, the output shape = idx_y.shape appended by data.shape[indexingDepth:] mx.symbol.gather_nd
-
take
Returns a partialNDArray
pointed by index according to linear indexing, and the of output is of the same shape as index. -
put
Sets the entries ofNDArray
pointed by index, according to linear indexing, to be the numbers in value.Value has to be of the same shape as index.
-
scatter
Writes all values from the tensor value into self at the indices specified in the index tensor.This is the reverse operation of the manner described in gather(). self[index[i][j][k]][j][k] = value[i][j][k] # if axis == 0 self[i][index[i][j][k]][k] = value[i][j][k] # if axis == 1 self[i][j][index[i][j][k]] = value[i][j][k] # if axis == 2
torch.Tensor.scatter_- Specified by:
scatter
in interfaceNDArray
- Parameters:
index
- the indices of elements to scatter, can be either empty or of the same dimensionality as value. When empty, the operation returns self unchangedvalue
- the source element(s) to scatteraxis
- the axis along which to index- Returns:
- the NDArray with updated values
-
get
Returns a partialNDArray
. -
set
Sets thisNDArray
value fromBuffer
. -
set
Sets the specified index in thisNDArray
with the given values. -
set
Sets the specified index in thisNDArray
with the given value. -
set
Sets the specific index by a function. -
set
Sets theNDArray
by boolean mask or integer index. -
setScalar
Sets the specified scalar in thisNDArray
with the given value. -
booleanMask
Returns portion of thisNDArray
given the index booleanNDArray
along given axis.- Specified by:
booleanMask
in interfaceNDArray
- Parameters:
index
- booleanNDArray
maskaxis
- an integer that represents the axis ofNDArray
to mask from- Returns:
- the result
NDArray
-
sequenceMask
Sets all elements outside the sequence to a constant value.This function takes an n-dimensional input array of the form [batch_size, max_sequence_length, ....] and returns an array of the same shape. Parameter
sequenceLength
is used to handle variable-length sequences. sequence_length should be an input array of positive ints of dimension [batch_size].- Specified by:
sequenceMask
in interfaceNDArray
- Parameters:
sequenceLength
- used to handle variable-length sequencesvalue
- the constant value to be set- Returns:
- the result
NDArray
-
sequenceMask
Sets all elements outside the sequence to 0.This function takes an n-dimensional input array of the form [batch_size, max_sequence_length, ....] and returns an array of the same shape. Parameter
sequenceLength
is used to handle variable-length sequences. sequence_length should be an input array of positive ints of dimension [batch_size].- Specified by:
sequenceMask
in interfaceNDArray
- Parameters:
sequenceLength
- used to handle variable-length sequences- Returns:
- the result
NDArray
-
contentEquals
Returnstrue
if all elements in thisNDArray
are equal to theNumber
.Examples
jshell> NDArray array = manager.ones(new Shape(2, 3)); jshell> array.contentEquals(1); // return true instead of boolean NDArray true
- Specified by:
contentEquals
in interfaceNDArray
- Parameters:
number
- the number to compare- Returns:
- the boolean result
-
contentEquals
Returnstrue
if all elements in thisNDArray
are equal to the otherNDArray
.Examples
jshell> NDArray array1 = manager.arange(6f).reshape(2, 3); jshell> NDArray array2 = manager.create(new float[] {0f, 1f, 2f, 3f, 4f, 5f}, new Shape(2, 3)); jshell> array1.contentEquals(array2); // return true instead of boolean NDArray true
- Specified by:
contentEquals
in interfaceNDArray
- Parameters:
other
- the otherNDArray
to compare- Returns:
- the boolean result
-
eq
Returns the booleanNDArray
for element-wise "Equals" comparison.Examples
jshell> NDArray array = manager.ones(new Shape(1)); jshell> array.eq(1); ND: (1) cpu() boolean [ true]
-
eq
Returns the booleanNDArray
for element-wise "Equals" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {0f, 1f, 3f}); jshell> NDArray array2 = manager.arange(3f); jshell> array1.eq(array2); ND: (3) cpu() boolean [ true, true, false]
-
neq
Returns the booleanNDArray
for element-wise "Not equals" comparison.Examples
jshell> NDArray array = manager.arange(4f).reshape(2, 2); jshell> array.neq(1); ND: (2, 2) cpu() boolean [[ true, false], [ true, true], ]
-
neq
Returns the booleanNDArray
for element-wise "Not equals" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {1f, 3f}); jshell> array1.neq(array2); ND: (2) cpu() boolean [false, true] jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {1f, 3f, 1f, 4f}, new Shape(2, 2)); jshell> array1.neq(array2); // broadcasting ND: (2, 2) cpu() boolean [[false, true], [false, true], ]
-
gt
Returns the booleanNDArray
for element-wise "Greater" comparison.Examples
jshell> NDArray array = manager.create(new float[] {4f, 2f}); jshell> array.gt(2f); ND: (2) cpu() boolean [ true, false]
-
gt
Returns the booleanNDArray
for element-wise "Greater Than" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {4f, 2f}); jshell> NDArray array2 = manager.create(new float[] {2f, 2f}); jshell> array1.neq(array2); ND: (2) cpu() boolean [ true, false]
-
gte
Returns the booleanNDArray
for element-wise "Greater or equals" comparison.jshell> NDArray array = manager.create(new float[] {4f, 2f}); jshell> array.gte(2f); ND: (2) cpu() boolean [ true, true]
-
gte
Returns the booleanNDArray
for element-wise "Greater or equals" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {4f, 2f}); jshell> NDArray array2 = manager.create(new float[] {2f, 2f}); jshell> array1.gte(array2); ND: (2) cpu() boolean [ true, true]
-
lt
Returns the booleanNDArray
for element-wise "Less" comparison.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.lt(2f); ND: (2) cpu() boolean [ true, false]
-
lt
Returns the booleanNDArray
for element-wise "Less" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {2f, 2f}); jshell> array1.lt(array2); ND: (2) cpu() boolean [ true, false]
-
lte
Returns the booleanNDArray
for element-wise "Less or equals" comparison.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.lte(2f); ND: (2) cpu() boolean [ true, true]
-
lte
Returns the booleanNDArray
for element-wise "Less or equals" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {2f, 2f}); jshell> array1.lte(array2); ND: (2) cpu() boolean [ true, true]
-
add
Adds a number to thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.add(2f); ND: (2) cpu() float32 [3., 4.]
-
add
Adds otherNDArray
s to thisNDArray
element-wise.The shapes of this
NDArray
and otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.arange(3f); jshell> array1.add(array2); // broadcasting ND: (3, 3) cpu() float32 [[ 0., 2., 4.], [ 3., 5., 7.], [ 6., 8., 10.], ]
-
sub
Subtracts a number from thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.sub(2f); ND: (2) cpu() float32 [-1., 0.]
-
sub
Subtracts the otherNDArray
from thisNDArray
element-wise.The shapes of this
NDArray
and otherNDArray
s must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9).reshape(3, 3); jshell> NDArray array2 = manager.arange(3); jshell> array1.sub(array2); // broadcasting ND: (3, 3) cpu() float32 [[0., 0., 0.], [3., 3., 3.], [6., 6., 6.], ]
-
mul
Multiplies thisNDArray
by a number element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.mul(3f); ND: (2) cpu() float32 [3., 6.]
-
mul
Multiplies thisNDArray
by otherNDArray
s element-wise.The shapes of this
NDArray
and otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.arange(3f); jshell> array1.mul(array2); // broadcasting ND: (3, 3) cpu() float32 [[ 0., 1., 4.], [ 0., 4., 10.], [ 0., 7., 16.], ]
-
div
Divides thisNDArray
by a number element-wise.Examples
jshell> NDArray array = manager.arange(5f); jshell> array.div(4f); ND: (5) cpu() float32 [0. , 0.25, 0.5 , 0.75, 1. ]
-
div
Divides thisNDArray
by the otherNDArray
element-wise.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.ones(new Shape(3)).mul(10); jshell> array1.div(array2); // broadcasting ND: (3, 3) cpu() float32 [[0. , 0.1, 0.2], [0.3, 0.4, 0.5], [0.6, 0.7, 0.8], ]
-
mod
Returns element-wise remainder of division.Examples
jshell> NDArray array = manager.arange(7f); jshell> array.mod(5f); ND: (7) cpu() float32 [0., 1., 2., 3., 4., 0., 1.]
-
mod
Returns element-wise remainder of division.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new float[] {4f, 7f}); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> array1.mod(array2); ND: (2) cpu() float32 [0., 1.]
-
pow
Takes the power of thisNDArray
with a number element-wise.Examples
jshell> NDArray array = manager.arange(5f); jshell> array.pow(4f); ND: (6) cpu() float32 [ 0., 1., 8., 27., 64., 125.]
-
pow
Takes the power of thisNDArray
with the otherNDArray
element-wise.Examples
jshell> NDArray array1 = manager.arange(6f).reshape(3, 2); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> array1.pow(array2); // broadcasting ND: (3, 2) cpu() float32 [[ 0., 1.], [ 4., 27.], [ 16., 125.], ]
-
addi
Adds a number to thisNDArray
element-wise in place.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.addi(2f); ND: (2) cpu() float32 [3., 4.] jshell> array; ND: (2) cpu() float32 [3., 4.]
-
addi
Adds otherNDArray
s to thisNDArray
element-wise in place.The shapes of this
NDArray
and otherNDArray
s must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {3f, 4f}); jshell> array1.addi(array2); ND: (2) cpu() float32 [4., 6.] jshell> array; ND: (2) cpu() float32 [4., 6.]
-
subi
Subtracts a number from thisNDArray
element-wise in place.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.subi(2f); ND: (2) cpu() float32 [-1., 0.] jshell> array; ND: (2) cpu() float32 [-1., 0.]
-
subi
Subtracts the otherNDArray
from thisNDArray
element-wise in place.The shapes of this
NDArray
and otherNDArray
s must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.arange(3f); jshell> array1.subi(array2); // broadcasting ND: (3, 3) cpu() float32 [[0., 0., 0.], [3., 3., 3.], [6., 6., 6.], ] jshell> array1; [[0., 0., 0.], [3., 3., 3.], [6., 6., 6.], ]
-
muli
Multiplies thisNDArray
by a number element-wise in place.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.muli(3f); ND: (2) cpu() float32 [3., 6.] jshell> array; ND: (2) cpu() float32 [3., 6.]
-
muli
Multiplies thisNDArray
by otherNDArray
element-wise in place.The shapes of this
NDArray
and otherNDArray
s must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.arange(3f); jshell> array1.muli(array2); // broadcasting ND: (3, 3) cpu() float32 [[ 0., 1., 4.], [ 0., 4., 10.], [ 0., 7., 16.], ] jshell> array1; ND: (3, 3) cpu() float32 [[ 0., 1., 4.], [ 0., 4., 10.], [ 0., 7., 16.], ]
-
divi
Divides thisNDArray
by a number element-wise in place.Examples
jshell> NDArray array = manager.arange(5f); jshell> array.divi(4f); ND: (5) cpu() float32 [0. , 0.25, 0.5 , 0.75, 1. ] jshell> array; ND: (5) cpu() float32 [0. , 0.25, 0.5 , 0.75, 1. ]
-
divi
Divides thisNDArray
by the otherNDArray
element-wise in place.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.ones(new Shape(3)).mul(10); jshell> array1.divi(array2); // broadcasting ND: (3, 3) cpu() float32 [[0. , 0.1, 0.2], [0.3, 0.4, 0.5], [0.6, 0.7, 0.8], ] jshell> array1; [[0. , 0.1, 0.2], [0.3, 0.4, 0.5], [0.6, 0.7, 0.8], ]
-
modi
Returns element-wise remainder of division in place.Examples
jshell> NDArray array = manager.arange(7f); jshell> array.modi(5f); ND: (7) cpu() float32 [0., 1., 2., 3., 4., 0., 1.] jshell> array; ND: (7) cpu() float32 [0., 1., 2., 3., 4., 0., 1.]
-
modi
Returns in place element-wise remainder of division in place.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new float[] {4f, 7f}); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> array1.modi(array2); ND: (2) cpu() float32 [0., 1.] jshell> array1; ND: (2) cpu() float32 [0., 1.]
-
powi
Takes the power of thisNDArray
with a number element-wise in place.Examples
jshell> NDArray array = manager.arange(5f); jshell> array.powi(4f); ND: (6) cpu() float32 [ 0., 1., 8., 27., 64., 125.] jshell> array; ND: (6) cpu() float32 [ 0., 1., 8., 27., 64., 125.]
-
powi
Takes the power of thisNDArray
with the otherNDArray
element-wise in place.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(6f).reshape(3, 2); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> array1.powi(array2); // broadcasting ND: (3, 2) cpu() float32 [[ 0., 1.], [ 4., 27.], [ 16., 125.], ] jshell> array1; ND: (3, 2) cpu() float32 [[ 0., 1.], [ 4., 27.], [ 16., 125.], ]
-
sign
Returns the element-wise sign. -
signi
Returns the element-wise sign in-place. -
maximum
Returns the maximum of thisNDArray
and a number element-wise.Examples
jshell> NDArray array = manager.create(new float[] {2f, 3f, 4f}); jshell> array.maximum(3f); ND: (3) cpu() float32 [3., 3., 4.]
-
maximum
Returns the maximum of thisNDArray
and the otherNDArray
element-wise.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new float[] {2f, 3f, 4f}); jshell> NDArray array2 = manager.create(new float[] {1f, 5f, 2f}); jshell> array1.maximum(array2); ND: (3) cpu() float32 [2., 5., 4.] jshell> NDArray array1 = manager.eye(2); jshell> NDArray array2 = manager.create(new float[] {0.5f, 2f}); jshell> array1.maximum(array2); // broadcasting ND: (2, 2) cpu() float32 [[1. , 2. ], [0.5, 2. ], ]
-
minimum
Returns the minimum of thisNDArray
and a number element-wise.Examples
jshell> NDArray array = manager.create(new float[] {2f, 3f, 4f}); jshell> array.minimum(3f); ND: (3) cpu() float32 [2., 3., 3.]
-
minimum
Returns the minimum of thisNDArray
and the otherNDArray
element-wise.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new float[] {2f, 3f, 4f}); jshell> NDArray array2 = manager.create(new float[] {1f, 5f, 2f}); jshell> array1.minimum(array2); ND: (3) cpu() float32 [1., 3., 2.] jshell> NDArray array1 = manager.eye(2); jshell> NDArray array2 = manager.create(new float[] {0.5f, 2f}); jshell> array1.minimum(array2); // broadcasting ND: (2, 2) cpu() float32 [[0.5, 0. ], [0. , 1. ], ]
-
neg
Returns the numerical negativeNDArray
element-wise.jshell> NDArray array = manager.arange(5f); jshell> array.neg(); ND: (5) cpu() float32 [-0., -1., -2., -3., -4.]
-
negi
Returns the numerical negativeNDArray
element-wise in place.jshell> NDArray array = manager.arange(5f); jshell> array.negi(); jshell> array; ND: (5) cpu() float32 [-0., -1., -2., -3., -4.]
-
abs
Returns the absolute value of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {-1f, -2f}); jshell> array.abs(); ND: (2) cpu() float32 [1., 2.]
-
square
Returns the square of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {2f, -3f}); jshell> array.square(); ND: (2) cpu() float32 [4., 9.]
-
sqrt
Returns the square root of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {4f}); jshell> array.sqrt(); ND: (1) cpu() float32 [2., ]
-
cbrt
Returns the cube-root of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 8f, 27f}); jshell> array.cbrt(); ND: (3) cpu() float32 [1., 2., 3.]
-
floor
Returns the floor of thisNDArray
element-wise.The floor of the scalar x is the largest integer i, such that i <= x.
Examples
jshell> NDArray array = manager.create(new float[] {-1.7f, -1.5f, -0.2f, 0.2f, 1.5f, 1.7f, 2.0f}); jshell> array.floor(); ND: (7) cpu() float32 [-2., -2., -1., 0., 1., 1., 2.]
-
ceil
Returns the ceiling of thisNDArray
element-wise.The ceil of the scalar x is the smallest integer i, such that i >= x.
Examples
jshell> NDArray array = manager.create(new float[] {-1.7f, -1.5f, -0.2f, 0.2f, 1.5f, 1.7f, 2.0f}); jshell> array.ceil(); ND: (7) cpu() float32 [-1., -1., -0., 1., 2., 2., 2.]
-
round
Returns the round of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {-1.7f, -1.5f, -0.2f, 0.2f, 1.5f, 1.7f, 2.0f}); jshell> array.round(); ND: (7) cpu() float32 [-2., -2., -0., 0., 2., 2., 2.]
-
trunc
Returns the truncated value of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {-1.7f, -1.5f, -0.2f, 0.2f, 1.5f, 1.7f, 2.0f}); jshell> array.trunc(); ND: (7) cpu() float32 [-1., -1., -0., 0., 1., 1., 2.]
-
exp
Returns the exponential value of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {0f, 2.5f}); jshell> array.exp(); ND: (2) cpu() float32 [ 1. , 12.1825]
-
gammaln
Return the log of the absolute value of the gamma function of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {0.5f, 1f, 1.5f}); jshell> array.gammaln(); ND: (2) cpu() float32 [ 0.5724, 0.0000, -0.1208]
-
log
Returns the natural logarithmic value of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {0f, 2.5f}); jshell> array.log(); ND: (2) cpu() float32 [ -inf, 0.9163]
-
log10
Returns the base 10 logarithm of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1000f, 1f, 150f}); jshell> array.log10(); ND: (3) cpu() float32 [3. , 0. , 2.1761]
-
log2
Returns the base 2 logarithm of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {8, 1f, 5f}); jshell> array.log2(); ND: (3) cpu() float32 [3. , 0. , 2.3219]
-
sin
Returns the trigonometric sine of thisNDArray
element-wise.The input should be in radians (2 Pi radians equals 360 degrees).
Examples
jshell> NDArray array = manager.create(new float[] {0f, 30f, 45f, 60f, 90f}); jshell> array = array.mul(Math.PI).div(180f); jshell> array.sin(); ND: (5) cpu() float32 [0. , 0.5 , 0.7071, 0.866 , 1. ]
-
cos
Returns the trigonometric cosine of thisNDArray
element-wise.The input should be in radians (2 Pi radians equals 360 degrees).
Examples
jshell> NDArray array = manager.create(new double[] {0, Math.PI/2, Math.PI}); jshell> array.cos(); ND: (3) cpu() float64 [ 1.0000000e+00, 6.1232340e-17, -1.0000000e+00],
-
tan
Returns the trigonometric tangent of thisNDArray
element-wise.The input should be in radians (2 Pi radians equals 360 degrees).
Examples
jshell> NDArray array = manager.create(new double[] {-Math.PI, Math.PI/2, Math.PI}); jshell> array.tan(); ND: (3) cpu() float64 [ 1.2246468e-16, 1.6331239e+16, -1.2246468e-16],
-
asin
Returns the inverse trigonometric sine of thisNDArray
element-wise.The input should be in the range [-1, 1]. The output is in the closed interval of [-Pi/2, Pi/2].
Examples
jshell> NDArray array = manager.create(new float[] {1f, -1f, 0f}); jshell> array.asin(); ND: (3) cpu() float64 [ 1.5708, -1.5708, 0. ]
-
acos
Returns the inverse trigonometric cosine of thisNDArray
element-wise.The input should be in the range [-1, 1]. The output is in the closed interval of [-Pi/2, Pi/2].
Examples
jshell> NDArray array = manager.create(new float[] {1f, -1f}); jshell> array.acos(); ND: (2) cpu() float64 [0. , 3.1416]
-
atan
Returns the inverse trigonometric tangent of thisNDArray
element-wise.The input should be in the range [-1, 1]. The output is in the closed interval of [-Pi/2, Pi/2].
Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f}); jshell> array.atan(); ND: (2) cpu() float64 [0. , 0.7854]
-
atan2
Returns the element-wise arc-tangent of this/other choosing the quadrant correctly.Examples
jshell> NDArray x = manager.create(new float[] {0f, 1f}); jshell> NDArray y = manager.create(new float[] {0f, -6f}); jshell> x.atan2(y); ND: (2) cpu() float64 [0. , 2.9764]
-
sinh
Returns the hyperbolic sine of thisNDArray
element-wise.sinh(x)=0.5*(exp(x) - exp(-x))
Examples
jshell> NDArray array = manager.create(new double[] {0, Math.PI}); jshell> array.sinh(); ND: (2) cpu() float64 [ 0. , 11.5487]
-
cosh
Returns the hyperbolic cosine of thisNDArray
element-wise.cosh(x)=0.5*(exp(x)+exp(-x))
Examples
jshell> NDArray array = manager.create(new double[] {0, Math.PI}); jshell> array.cosh(); ND: (2) cpu() float64 [ 1. , 11.592 ]
-
tanh
Returns the hyperbolic tangent of thisNDArray
element-wise.tanh(x)=sinh(x)/cosh(x)
Examples
jshell> NDArray array = manager.create(new double[] {0, Math.PI}); jshell> array.tanh(); ND: (2) cpu() float64 [0. , 0.9963]
-
asinh
Returns the inverse hyperbolic sine of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new double[] {Math.E, 10}); jshell> array.asinh(); ND: (2) cpu() float64 [1.7254, 2.9982]
-
acosh
Returns the inverse hyperbolic cosine of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new double[] {Math.E, 10}); jshell> array.acosh(); ND: (2) cpu() float64 [1.6575, 2.9932]
-
atanh
Returns the inverse hyperbolic tangent of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new double[] {0, -0.5}); jshell> array.atanh(); ND: (2) cpu() float64 [ 0. , -0.5493]
-
toDegrees
Converts thisNDArray
from radians to degrees element-wise.Examples
jshell> NDArray array = manager.arange(6f).mul(Math.PI / 3); jshell> array.toDegrees(); ND: (6) cpu() float32 [ 0., 60., 120., 180., 240., 300.]
-
toRadians
Converts thisNDArray
from degrees to radians element-wise.Examples
jshell> NDArray array = manager.arange(6f).mul(60); jshell> array.toRadians(); ND: (6) cpu() float32 [0. , 1.0472, 2.0944, 3.1416, 4.1888, 5.236 ]
-
max
Returns the maximum of thisNDArray
.Examples
jshell> NDArray array = manager.arange(4f).reshape(2,2); jshell> array; ND: (2, 2) cpu() float32 [[0., 1.], [2., 3.], ] jshell> array.max(); // Maximum of the flattened array ND: () cpu() float32 3. jshell> array.max().getFloat() // Use getFloat() to get native float 3.0
-
max
Returns the maximum of thisNDArray
along given axes.Examples
jshell> NDArray array = manager.arange(4f).reshape(2,2); jshell> array; ND: (2, 2) cpu() float32 [[0., 1.], [2., 3.], ] jshell> array.max(new int[]{0}, true); // Maximum along the first axis and keep dimension ND: (1, 2) cpu() float32 [[2., 3.], ] jshell> array.max(new int[]{1}, true); // Maximum along the second axis and keep dimension ND: (2, 1) cpu() float32 [[1.], [3.], ]
-
min
Returns the minimum of thisNDArray
.Examples
jshell> NDArray array = manager.arange(4f).reshape(2,2); jshell> array; ND: (2, 2) cpu() float32 [[0., 1.], [2., 3.], ] jshell> array.min(); // Minimum of the flattened array ND: () cpu() float32 0. jshell> array.min().getFloat(); // Use getFloat() to get native float 0.0
-
min
Returns the minimum of thisNDArray
along given axes.Examples
jshell> NDArray array = manager.arange(4f).reshape(2,2); jshell> array ND: (2, 2) cpu() float32 [[0., 1.], [2., 3.], ] jshell> array.min(new int[]{0}, true) // Minimum along the first axis and keep dimension ND: (1, 2) cpu() float32 [[0., 1.], ] jshell> array.min(new int[]{1}, true) // Minimum along the second axis and keep dimension ND: (2, 1) cpu() float32 [[0.], [2.], ]
-
sum
Returns the sum of thisNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {0.5f, 1.5f}); jshell> array.sum(); ND: () cpu() float32 2. jshell> array.sum().getFloat(); // Use getFloat() to get native float 2.0 jshell> NDArray array = manager.create(new float[] {0f, 1f, 0f, 5f}, new Shape(2, 2)); jshell> array.sum(); ND: () cpu() float32 6.
-
sum
Returns the sum of thisNDArray
along given axes.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 0f, 5f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[0., 1.], [0., 5.], ] jshell> array.sum(new int[] {0}, true); ND: (1, 2) cpu() float32 [[0., 6.], ] jshell> array.sum(new int[] {1}, true); ND: (2, 2) cpu() float32 [[0., 1.], [0., 5.], ]
-
cumProd
Returns the cumulative product of elements of input in the dimension dim. For example, if input is a vector of size N, the result will also be a vector of size N, with elements. [x1, x1 * x2, x1 * x2 *x3 ...] -
cumProd
Returns the cumulative product of elements of input in the dimension dim. For example, if input is a vector of size N, the result will also be a vector of size N, with elements. [x1, x1 * x2, x1 * x2 *x3 ...] -
prod
Returns the product of thisNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {2f, 3f}); jshell> array.prod(); ND: () cpu() float32 6. jshell> array.prod().getFloat(); // Use getFloat to get native float 6.0 jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array.prod(); ND: () cpu() float32 24.
-
prod
Returns the product of thisNDArray
elements over the given axes.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2.], [3., 4.], ] jshell> array.prod(new int[] {0}, true); ND: (1, 2) cpu() float32 [[3., 8.], ] jshell> array.prod(new int[] {1}, true); ND: (2, 1) cpu() float32 [[ 2.], [12.], ]
-
mean
Returns the average of thisNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {2f, 3f}); jshell> array.mean(); ND: () cpu() float32 2.5 jshell> array.mean().getFloat(); // Use getFloat() to get native float 2.5 jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array.mean(); ND: () cpu() float32 2.5
-
mean
Returns the average of thisNDArray
along given axes.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2.], [3., 4.], ] jshell> array.mean(new int[] {0}, true); ND: (1, 2) cpu() float32 [[2., 3.], ] jshell> array.mean(new int[] {1}, true); ND: (2, 1) cpu() float32 [[1.5], [3.5], ]
-
normalize
Performs Lp normalization of the array over specified dimension.Examples
jshell> NDArray array = manager.create(new float[] {1, 2, 3, 4, 5, 6}, new Shape(2, 3)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2., 3.], [4., 5., 6.], ] jshell> array.normalize(2, 1, 1e-12); ND: (2, 3) cpu() float32 [[0.2673, 0.5345, 0.8018], [0.4558, 0.5698, 0.6838], ]
-
rotate90
Rotates an array by 90 degrees in the plane specified by axes.Rotation direction is from the first towards the second axis.
-
trace
Returns the sum along diagonals of thisNDArray
.If this
NDArray
is 2-D, the sum along its diagonal with the given offset is returned, i.e., the sum of elements a[i,i+offset] for all i. If thisNDArray
has more than two dimensions, then the axes specified by axis1 and axis2 are used to determine the 2-D sub-arrays whose traces are returned. TheShape
of the resulting array is the same as thisNDArray
with axis1 and axis2 removed.Examples
jshell> NDArray array = manager.arange(8f).reshape(2, 2, 2); jshell> array; ND: (2, 2, 2) cpu() float32 [[[0., 1.], [2., 3.], ], [[4., 5.], [6., 7.], ], ] jshell> array.trace(1,1,2); ND: (2) cpu() float32 [1., 5.]
- Specified by:
trace
in interfaceNDArray
- Parameters:
offset
- offset of the diagonal from the main diagonal. Can be both positive and negative.axis1
- axes to be used as the first axis of the 2-D sub-arrays from which the diagonals should be takenaxis2
- axes to be used as the second axis of the 2-D sub-arrays from which the diagonals should be taken- Returns:
- the sum along diagonals of this
NDArray
-
split
Splits thisNDArray
into multiple subNDArray
s given sections along the given axis.Examples
jshell> NDArray array = manager.arange(18f).reshape(2, 9); jshell> array; ND: (2, 9) cpu() float32 [[ 0., 1., 2., 3., 4., 5., 6., 7., 8.], [ 9., 10., 11., 12., 13., 14., 15., 16., 17.], ] jshell> array.split(3, 1).forEach(System.out::println); ND: (2, 3) cpu() float32 [[ 0., 1., 2.], [ 9., 10., 11.], ] ND: (2, 3) cpu() float32 [[ 3., 4., 5.], [12., 13., 14.], ] ND: (2, 3) cpu() float32 [[ 6., 7., 8.], [15., 16., 17.], ]
-
split
Splits thisNDArray
into multiple sub-NDArray
s given indices along given axis.Examples
jshell> NDArray array = manager.arange(18f).reshape(2, 9); jshell> array; ND: (2, 9) cpu() float32 [[ 0., 1., 2., 3., 4., 5., 6., 7., 8.], [ 9., 10., 11., 12., 13., 14., 15., 16., 17.], ] jshell> array.split(new int[] {2,4,5}, 1).forEach(System.out::println); ND: (2, 2) cpu() float32 [[ 0., 1.], [ 9., 10.], ] ND: (2, 2) cpu() float32 [[ 2., 3.], [11., 12.], ] ND: (2, 1) cpu() float32 [[ 4.], [13.], ] ND: (2, 4) cpu() float32 [[ 5., 6., 7., 8.], [14., 15., 16., 17.], ]
- Specified by:
split
in interfaceNDArray
- Parameters:
indices
- the entries indicate where along axis thisNDArray
is split. If an index exceeds the dimension of thisNDArray
along axis, an empty sub-array is returned correspondinglyaxis
- the axis to split along- Returns:
- an
NDList
with numOutputsNDArray
s withShape
(this.shape.axis /= axis)
-
flatten
Flattens thisNDArray
into a 1-DNDArray
in row-major order.To flatten in column-major order, first transpose this
NDArray
Examples
jshell> NDArray array = manager.create(new float[]{1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array.flatten(); ND: (4) cpu() float32 [1., 2., 3., 4.]
-
flatten
Flattens thisNDArray
into a partially flattenNDArray
.Examples
jshell> NDArray array = manager.create(new float[]{1f, 2f, 3f, 4f, 5f, 6f, 7f, 8f}, new Shape(2, 2, 2)); jshell> array.flatten(0, 1); ND: (4) cpu() float32 [[1., 2], [3., 4.], [5., 6.], [7., 8.]]
-
fft
Computes the one-dimensional discrete Fourier Transform. -
ifft
Computes the one dimensional inverse discrete Fourier transform. -
rfft
Computes the one dimensional Fourier transform of real-valued input. -
irfft
Computes the one dimensional inverse Fourier transform of real-valued input. -
stft
public NDArray stft(long nFft, long hopLength, boolean center, NDArray window, boolean normalize, boolean returnComplex) Computes the Short Time Fourier Transform (STFT).- Specified by:
stft
in interfaceNDArray
- Parameters:
nFft
- size of Fourier transformhopLength
- the distance between neighboring sliding window frames. Default can be: floor(n_fft / 4)center
- whether to pad input on both sides.window
- Desired window to use. Recommend for HanningWindownormalize
- controls whether to return the normalized STFT resultsreturnComplex
- whether to return a complex tensor, or a real tensor with an extra last dimension for the real and imaginary components.- Returns:
- A NDArray containing the STFT result with shape described above
-
fft2
Computes the two-dimensional Discrete Fourier Transform. -
pad
Pads thisNDArray
with the givenShape
.Examples
NDArray array = manager.zeros(3, 3, 4, 2); array.pad(new Shape(1, 1), 0); # pad last dim by 1 on each side array.getShape() => (3, 3, 4, 4)
-
ifft2
Computes the two-dimensional inverse Discrete Fourier Transform. -
reshape
Reshapes thisNDArray
to the givenShape
.You can reshape it to match another NDArray by calling
a.reshape(b.getShape())
Examples
jshell> NDArray array = manager.arange(6f); jshell> array; ND: (6) cpu() float32 [0., 1., 2., 3., 4., 5.] jshell> array.reshape(new Shape(2, 3)); ND: (2, 3) cpu() float32 [[0., 1., 2.], [3., 4., 5.], ]
-
expandDims
Expands theShape
of aNDArray
.Inserts a new axis that will appear at the axis position in the expanded
NDArray
shape.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array; ND: (2) cpu() float32 [1., 2.] jshell> array.expandDims(0); ND: (1, 2) cpu() float32 [[1., 2.], ] jshell> array.expandDims(1); ND: (2, 1) cpu() float32 [[1.], [2.], ]
- Specified by:
expandDims
in interfaceNDArray
- Parameters:
axis
- the position in the expanded axes where the new axis is placed- Returns:
- the result
NDArray
. The number of dimensions is one greater than that of theNDArray
-
squeeze
Removes singleton dimensions at the given axes.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f}, new Shape(1, 3, 1)); jshell> array; ND: (1, 3, 1) cpu() float32 [[[0.], [1.], [2.], ], ] jshell> array.squeeze(new int[] {0, 2}); ND: (3) cpu() float32 [0., 1., 2.]
-
unique
Returns the unique elements of the input tensor.Examples
jshell> NDArray array = manager.create(new float[] {3f, 1f, 2f, 3f, 1f, 2f, 1f, 3f, 2f}, new Shape(3, 3)); jshell> array; ND: (3, 3) cpu() float32 [[[3., 1., 2.], [3., 1., 2.], [1., 3., 2.], ], ] jshell> NDList output = array.unique(0, true, true, true); jshell> output.get(0); jshell> output.get(1); jshell> output.get(2); ND: (2, 3) cpu() float32 [[1., 3., 2.], [3., 1., 2.], ] ND: (3) cpu() int64 [ 1, 1, 0] ND: (2) cpu() int64 [ 1, 2]
- Specified by:
unique
in interfaceNDArray
- Parameters:
dim
- the dimension to apply uniquesorted
- whether to sort the unique elements in ascending order before returning as outputreturnInverse
- return the indices which, fed into the output unique array as indices, will recover the original arrayreturnCounts
- return the counts for each unique element- Returns:
- An
NDList
containing: output (Tensor): the output list of unique elements or low-rank tensors. inverse_indices (Tensor): (optional) if return_inverse is True, there will be an additional returned tensor (same shape as input) representing the indices for where elements in the original input map to in the output; otherwise, this function will only return a single tensor. counts (Tensor): (optional) if return_counts is True, there will be an additional returned tensor (same shape as output or output.size(dim), if dim was specified) representing the number of occurrences for each unique value or tensor.
-
logicalAnd
Returns the truth value of thisNDArray
AND the otherNDArray
element-wise.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new boolean[] {true}); jshell> NDArray array2 = manager.create(new boolean[] {false}); jshell> array1.logicalAnd(array2); ND: (1) cpu() boolean [false] jshell> array1 = manager.create(new boolean[] {true, false}); jshell> array2 = manager.create(new boolean[] {false, false}); jshell> array1.logicalAnd(array2); ND: (2) cpu() boolean [false, false]
jshell> NDArray array = manager.arange(5f); jshell> array.gt(1).logicalAnd(array.lt(4)); ND: (5) cpu() boolean [false, false, true, true, false]
- Specified by:
logicalAnd
in interfaceNDArray
- Parameters:
other
- the otherNDArray
to operate on- Returns:
- the boolean
NDArray
of the logical AND operation applied to the elements of thisNDArray
and the otherNDArray
-
logicalOr
Computes the truth value of thisNDArray
OR the otherNDArray
element-wise.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new boolean[] {true}); jshell> NDArray array2 = manager.create(new boolean[] {false}); jshell> array1.logicalOr(array2); ND: (1) cpu() boolean [ true] jshell> array1 = manager.create(new boolean[] {true, false}); jshell> array2 = manager.create(new boolean[] {false, false}); jshell> array1.logicalOr(array2); ND: (2) cpu() boolean [ true, false]
jshell> NDArray array = manager.arange(5f); jshell> array.lt(1).logicalOr(array.gt(3)); ND: (5) cpu() boolean [ true, false, false, false, true]
-
logicalXor
Computes the truth value of thisNDArray
XOR the otherNDArray
element-wise.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array = manager.create(new boolean[] {true}); jshell> array1.logicalXor(array2); ND: (1) cpu() boolean [ true] jshell> array1 = manager.create(new boolean[] {true, false}); jshell> array2 = manager.create(new boolean[] {false, false}); jshell> array1.logicalXor(array2); ND: (2) cpu() boolean [ true, false]
jshell> NDArray array = manager.arange(5f); jshell> array.lt(1).logicalXor(array.gt(3)); ND: (5) cpu() boolean [ true, false, false, false, true]
- Specified by:
logicalXor
in interfaceNDArray
- Parameters:
other
- the otherNDArray
to operate on- Returns:
- the boolean
NDArray
of the logical XOR operation applied to the elements of thisNDArray
and the otherNDArray
-
logicalNot
Computes the truth value of NOT thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new boolean[] {true}); jshell> array.logicalNot(); ND: (1) cpu() boolean [ false]
jshell> NDArray array = manager.arange(5f); jshell> array.lt(1).logicalNot(); ND: (5) cpu() boolean [false, true, true, true, true]
- Specified by:
logicalNot
in interfaceNDArray
- Returns:
- the boolean
NDArray
-
argSort
Returns the indices that would sort thisNDArray
given the axis.Perform an indirect sort along the given axis. It returns a
NDArray
of indices of the sameShape
as thisNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {0f, 3f, 2f, 2f}, new Shape(2, 2)); jshell> array.argSort(0, false); ND: (2, 2) cpu() int64 [[ 1, 0], [ 0, 1], ]
- Specified by:
argSort
in interfaceNDArray
- Parameters:
axis
- the axis to sort alongascending
- whether to sort ascending- Returns:
- a
NDArray
of indices corresponding to elements in thisNDArray
on the axis, the output DataType is alwaysDataType.INT64
-
sort
Sorts the flattenedNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {1f, 4f, 3f, 1f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 4.], [3., 1.], ] jshell> array.sort(); // sort the flattened array ND: (2, 2) cpu() float32 [[1., 4.], [1., 3.], ]
-
sort
Sorts the flattenedNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {1f, 4f, 3f, 1f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 4.], [3., 1.], ] jshell> array.sort(0); // sort along the first axis ND: (2, 2) cpu() float32 [[1., 1.], [3., 4.], ]
-
softmax
Applies the softmax function along the given axis. -
logSoftmax
Applies the softmax function followed by a logarithm.Mathematically equivalent to calling softmax and then log. This single operator is faster than calling two operators and numerically more stable when computing gradients.
- Specified by:
logSoftmax
in interfaceNDArray
- Parameters:
axis
- the axis along which to apply- Returns:
- the result
NDArray
-
cumSum
Returns the cumulative sum of the elements in the flattenedNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f, 5f, 6f}, new Shape(2, 3)); jshell> array; ND: (2, 3) cpu() float32 [[1., 2., 3.], [4., 5., 6.], ] jshell> array.cumSum(); // cumSum on flattened array ND: (6) cpu() float32 [ 1., 3., 6., 10., 15., 21.]
-
cumSum
Return the cumulative sum of the elements along a given axis.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f, 5f, 6f}, new Shape(2, 3)); jshell> array; ND: (2, 3) cpu() float32 [[1., 2., 3.], [4., 5., 6.], ] jshell> array.cumSum(0); ND: (2, 3) cpu() float32 [[1., 2., 3.], [5., 7., 9.], ] jshell> array.cumSum(1); ND: (2, 3) cpu() float32 [[ 1., 3., 6.], [ 4., 9., 15.], ]
-
isInfinite
Returns the booleanNDArray
with valuetrue
where thisNDArray
's entries are infinite, orfalse
where they are not infinite.- Specified by:
isInfinite
in interfaceNDArray
- Returns:
- the boolean
NDArray
with valuetrue
if thisNDArray
's entries are infinite
-
isNaN
Returns the booleanNDArray
with valuetrue
where thisNDArray
's entries are NaN, orfalse
where they are not NaN.Examples
jshell> NDArray array = manager.create(new float[] {Float.POSITIVE_INFINITY, 0, Float.NaN}); jshell> array.isNaN(); ND: (3) cpu() boolean [false, false, true]
-
tile
Constructs aNDArray
by repeating thisNDArray
the number of times given repeats.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f}); jshell> array.tile(2); ND: (6) cpu() float32 [0., 1., 2., 0., 1., 2.]
-
tile
Constructs aNDArray
by repeating thisNDArray
the number of times given by repeats along given axis.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f}); jshell> array.tile(1, 2); ND: (1, 6) cpu() float32 [[0., 1., 2., 0., 1., 2.], ]
-
tile
Constructs aNDArray
by repeating thisNDArray
the number of times given by repeats.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f}); jshell> array.tile(new long[] {2, 2}); ND: (2, 6) cpu() float32 [[0., 1., 2., 0., 1., 2.], [0., 1., 2., 0., 1., 2.], ]
-
tile
Constructs aNDArray
by repeating thisNDArray
the number of times to match the desired shape.If the desired
Shape
has fewer dimensions than thisNDArray
, it will tile against the last axis.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f}); jshell> array.tile(new Shape(6)); ND: (6) cpu() float32 [0., 1., 2., 0., 1., 2.]
-
repeat
Repeats element of thisNDArray
the number of times given repeats.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f}); jshell> array.repeat(2); ND: (6) cpu() float32 [0., 0., 1., 1., 2., 2.]
-
repeat
Repeats element of thisNDArray
the number of times given repeats along given axis.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f, 3f}, new Shape(2, 2)); jshell> array.repeat(1, 2); ND: (6) cpu() float32 [[0., 0., 1., 1.], [2., 2., 3., 3.]]
-
repeat
Repeats element of thisNDArray
the number of times given repeats along each axis.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f, 3f}, new Shape(2, 2)); jshell> array.repeat(new long[] {2, 2}); ND: (12) cpu() float32 [0., 0., 0., 0., 1., 1., 1., 1., 2., 2., 2., 2.]
-
repeat
Repeats element of thisNDArray
to match the desired shape.If the desired
Shape
has fewer dimensions that the array, it will repeat against the last axis.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f, 3f}, new Shape(2, 2)); jshell> array.repeat(new Shape(4, 4)); ND: (4, 4) cpu() float32 [[0., 0., 1., 1.], [0., 0., 1., 1.], [2., 2., 3., 3.], [2., 2., 3., 3.], ]
-
dot
Dot product of thisNDArray
and the otherNDArray
.- If both this
NDArray
and the otherNDArray
are 1-DNDArray
s, it is inner product of vectors (without complex conjugation). - If both this
NDArray
and the otherNDArray
are 2-DNDArray
s, it is matrix multiplication. - If either this
NDArray
or the otherNDArray
is 0-DNDArray
(scalar), it is equivalent to mul. - If this
NDArray
is N-DNDArray
and the otherNDArray
is 1-DNDArray
, it is a sum product over the last axis of those. - If this
NDArray
is N-DNDArray
and the otherNDArray
is M-DNDArray
(where M>=2), it is a sum product over the last axis of thisNDArray
and the second-to-last axis of the otherNDArray
Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f, 3f}); jshell> NDArray array2 = manager.create(new float[] {4f, 5f, 6f}); jshell> array1.dot(array2); // inner product ND: () cpu() float32 32. jshell> array1 = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array2 = manager.create(new float[] {5f, 6f, 7f, 8f}, new Shape(2, 2)); jshell> array1.dot(array2); // matrix multiplication ND: (2, 2) cpu() float32 [[19., 22.], [43., 50.], ] jshell> array1 = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array2 = manager.create(5f); jshell> array1.dot(array2); ND: (2, 2) cpu() float32 [[ 5., 10.], [15., 20.], ] jshell> array1 = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array2 = manager.create(new float[] {1f, 2f}); jshell> array1.dot(array2); ND: (2) cpu() float32 [ 5., 11.] jshell> array1 = manager.create(new float[] {1f, 2f, 3f, 4f, 5f, 6f, 7f, 8f}, new Shape(2, 2, 2)); jshell> array2 = manager.create(new float[] {1f, 2f, 3f ,4f}, new Shape(2, 2)); jshell> array1.dot(array2); ND: (2, 2, 2) cpu() float32 [[[ 7., 10.], [15., 22.], ], [[23., 34.], [31., 46.], ], ]
- If both this
-
matMul
Product matrix of thisNDArray
and the otherNDArray
.The behavior depends on the arguments in the following way.
- If both this
NDArray
and the otherNDArray
are 2-DNDArray
s, they are multiplied like conventional matrices - If either this
NDArray
or the otherNDArray
is N-DNDArray
, N > 2 , it is treated as a stack of matrices residing in the last two indexes and broadcast accordingly. - If this
NDArray
is 1-DNDArray
, it is promoted to a matrix by prepending a 1 to its dimensions. After matrix multiplication the prepended 1 is removed. - If other
NDArray
is 1-DNDArray
, it is promoted to a matrix by appending a 1 to its dimensions. After matrix multiplication the appended 1 is removed.
Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 0f, 0f, 1f}, new Shape(2, 2)); jshell> NDArray array2 = manager.create(new float[] {4f, 1f, 2f, 2f}, new Shape(2, 2)); jshell> array1.matMul(array2); // for 2-D arrays, it is the matrix product ND: (2, 2) cpu() float32 [[4., 1.], [2., 2.], ] jshell> array1 = manager.create(new float[] {1f, 0f, 0f, 1f}, new Shape(2, 2)); jshell> array2 = manager.create(new float[] {1f, 2f}); jshell> array1.matMul(array2); ND: (2) cpu() float32 [1., 2.] jshell> array1 = manager.create(new float[] {1f, 0f, 0f, 1f}, new Shape(2, 2)); jshell> array2 = manager.create(new float[] {1f, 2f}); jshell> array1.matMul(array2); ND: (2) cpu() float32 [1., 2.] jshell> array1 = manager.arange(2f * 2f * 4f).reshape(2, 2, 4); jshell> array2 = manager.arange(2f * 2f * 4f).reshape(2, 4, 2); jshell> array1.matMul(array2).get("0, 1, 1"); ND: () cpu() float32 98.
- If both this
-
batchMatMul
Batch product matrix of thisNDArray
and the otherNDArray
.- Specified by:
batchMatMul
in interfaceNDArray
- Parameters:
other
- the otherNDArray
to perform matrix product with- Returns:
- the result
NDArray
-
xlogy
Computes this * log(other). -
clip
Clips (limit) the values in thisNDArray
.Given an interval, values outside the interval are clipped to the interval edges. For example, if an interval of [0, 1] is specified, values smaller than 0 become 0, and values larger than 1 become 1.
Examples
jshell> NDArray array = manager.arange(10f); jshell> array.clip(1, 8); ND: (10) cpu() float32 [1., 1., 2., 3., 4., 5., 6., 7., 8., 8.]
-
flip
Returns the reverse order of elements in an array along the given axis.The shape of the array is preserved, but the elements are reordered.
-
transpose
Returns thisNDArray
with axes transposed.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f ,3f, 4f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2.], [3., 4.], ] jshell> array.transpose(); ND: (2, 2) cpu() float32 [[1., 3.], [2., 4.], ]
-
transpose
Returns thisNDArray
with given axes transposed.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f ,3f, 4f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2.], [3., 4.], ] jshell> array.transpose(1, 0); ND: (2, 2) cpu() float32 [[1., 3.], [2., 4.], ] jshell> array = manager.arange(8f).reshape(2, 2, 2); jshell> array; ND: (2, 2, 2) cpu() float32 [[[0., 1.], [2., 3.], ], [[4., 5.], [6., 7.], ], ] jshell> array.transpose(1, 0, 2); ND: (2, 2, 2) cpu() float32 [[[0., 1.], [4., 5.], ], [[2., 3.], [6., 7.], ], ]
-
broadcast
Broadcasts thisNDArray
to be the given shape.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f ,3f, 4f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2.], [3., 4.], ] jshell> array.broadcast(new Shape(2, 2, 2)); ND: (2, 2, 2) cpu() float32 [[[1., 2.], [3., 4.], ], [[1., 2.], [3., 4.], ], ]
-
argMax
Returns the indices of the maximum values into the flattenedNDArray
.Examples
jshell> NDArray array = manager.arange(6f).reshape(2, 3); jshell> array; ND: (2, 3) cpu() float32 [[0., 1., 2.], [3., 4., 5.], ] jshell> array.argMax(); ND: () cpu() int64 5.
-
argMax
Returns the indices of the maximum values along given axis.Examples
jshell> NDArray array = manager.arange(6f).reshape(2, 3); jshell> array; ND: (2, 3) cpu() float32 [[0., 1., 2.], [3., 4., 5.], ] jshell> array.argMax(0); ND: (3) cpu() int64 [1, 1, 1] jshell> array.argMax(1); ND: (2) cpu() int64 [2, 2]
-
topK
Returns (values, indices) of the top k values along given axis. -
argMin
Returns the indices of the minimum values into the flattenedNDArray
.Examples
jshell> NDArray array = manager.arange(6f).reshape(2, 3); jshell> array; ND: (2, 3) cpu() float32 [[0., 1., 2.], [3., 4., 5.], ] jshell> array.argMin(); ND: () cpu() int64 0.
-
argMin
Returns the indices of the minimum values along given axis.Examples
jshell> NDArray array = manager.arange(6f).reshape(2, 3); jshell> array; ND: (2, 3) cpu() float32 [[0., 1., 2.], [3., 4., 5.], ] jshell> array.argMin(0); ND: (3) cpu() int64 [0, 0, 0] jshell> array.argMin(1); ND: (2) cpu() int64 [0, 0]
-
percentile
Returns percentile for thisNDArray
.- Specified by:
percentile
in interfaceNDArray
- Parameters:
percentile
- the target percentile in range of 0..100- Returns:
- the result
NDArray
-
percentile
Returns median along given dimension(s).- Specified by:
percentile
in interfaceNDArray
- Parameters:
percentile
- the target percentile in range of 0..100axes
- the dimension to calculate percentile for- Returns:
- the result
NDArray
NDArray
-
median
Returns median value for thisNDArray
. -
median
Returns median value along given axes. -
toDense
Returns a dense representation of the sparseNDArray
. -
toSparse
Returns a sparse representation ofNDArray
.- Specified by:
toSparse
in interfaceNDArray
- Parameters:
fmt
- theSparseFormat
of thisNDArray
- Returns:
- the result
NDArray
-
nonzero
Returns the indices of elements that are non-zero.Note that the behavior is slightly different from numpy.nonzero. Numpy returns a tuple of NDArray, one for each dimension of NDArray. DJL nonzero returns only one
NDArray
with last dimension containing all dimension of indices.Examples
jshell> NDArray array = manager.create(new float[] {1f, 1f, 1f, 0f, 1f}); jshell> array.nonzero(); ND: (4, 1) cpu() int64 [[ 0], [ 1], [ 2], [ 4], ] jshell> array = manager.create(new float[] {3f, 0f, 0f, 0f, 4f, 0f, 5f, 6f, 0f}).reshape(3, 3); jshell> array; ND: (3, 3) cpu() float32 [[3., 0., 0.], [0., 4., 0.], [5., 6., 0.], ] jshell> array.nonzero(); ND: (4, 2) cpu() int64 [[ 0, 0], [ 1, 1], [ 2, 0], [ 2, 1], ]
-
erfinv
Returns element-wise inverse gauss error function of theNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {0f, 0.5f, -1f}); jshell> array.erfinv(); ND: (3) cpu() float32 [0., 0.4769, -inf]
-
erf
Returns element-wise gauss error function of theNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {0f, 0.4769f, Float.NEGATIVE_INFINITY}); jshell> array.erf(); ND: (3) cpu() float32 [0., 0.5, -1]
-
inverse
Computes the inverse of squareNDArray
if it exists. -
norm
Returns the norm of thisNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {-3f, -4f}); jshell> array.norm(true); ND: () cpu() float32 5. jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array.norm(true); ND: () cpu() float32 [[5.4772], ]
-
norm
Returns the norm of thisNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array.norm(2, new int[] {0}, true); ND: (1, 2) cpu() float32 [[3.1623, 4.4721], ] jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array.norm(2, new int[] {0}, false); ND: (2) cpu() float32 [3.1623, 4.4721]
- Specified by:
norm
in interfaceNDArray
- Parameters:
ord
- Order of the norm.axes
- If axes contains an integer, it specifies the axis of x along which to compute the vector norms. If axis contains 2 integers, it specifies the axes that hold 2-D matrices, and the matrix norms of these matrices are computed.keepDims
- keepDims If this is set to True, the axes which are normed over are left in the result as dimensions with size one. With this option the result will broadcast correctly against the original x.- Returns:
- the norm of this
NDArray
-
oneHot
Returns a one-hotNDArray
.- The locations represented by indices take value onValue, while all other locations take value offValue.
- If the input
NDArray
is rank N, the output will have rank N+1. The new axis is appended at the end. - If
NDArray
is a scalar the output shape will be a vector of length depth. - If
NDArray
is a vector of length features, the output shape will be features x depth. - If
NDArray
is a matrix with shape [batch, features], the output shape will be batch x features x depth.
Examples
jshell> NDArray array = manager.create(new int[] {1, 0, 2, 0}); jshell> array.oneHot(3, 8f, 1f, array.getDataType()); ND: (4, 3) cpu() int32 [[ 1, 8, 1], [ 8, 1, 1], [ 1, 1, 8], [ 8, 1, 1], ]
- Specified by:
oneHot
in interfaceNDArray
- Parameters:
depth
- Depth of the one hot dimension.onValue
- The value assigned to the locations represented by indices.offValue
- The value assigned to the locations not represented by indices.dataType
- dataType of the output.- Returns:
- one-hot encoding of this
NDArray
- See Also:
-
batchDot
Batchwise product of thisNDArray
and the otherNDArray
.- batchDot is used to compute dot product of x and y when x and y are data in batch, namely N-D (N greater or equal to 3) arrays in shape of (B0, …, B_i, :, :). For example, given x with shape (B_0, …, B_i, N, M) and y with shape (B_0, …, B_i, M, K), the result array will have shape (B_0, …, B_i, N, K), which is computed by: batch_dot(x,y)[b_0, ..., b_i, :, :] = dot(x[b_0, ..., b_i, :, :], y[b_0, ..., b_i, :, :])
Examples
jshell> NDArray array1 = manager.ones(new Shape(2, 1, 4)); jshell> NDArray array2 = manager.ones(new Shape(2, 4, 6)); jshell> array1.batchDot(array2); ND: (2, 1, 6) cpu() float32 [[[4., 4., 4., 4., 4., 4.], ], [[4., 4., 4., 4., 4., 4.], ], ]
-
complex
Convert a general NDArray to its complex math format.example: [10f, 12f] float32 -> [10+12j] in complex64
-
real
Convert a complex NDArray to its real math format. example: [10+12j] in complex64 -> [10f, 12f] float32 -
conj
Conjugate complex array. -
getNDArrayInternal
public ai.djl.ndarray.internal.NDArrayEx getNDArrayInternal()Returns an internal representative of NativeNDArray
.This method should only be used by Engine provider
- Specified by:
getNDArrayInternal
in interfaceNDArray
- Returns:
- an internal representative of Native
NDArray
-
isReleased
public boolean isReleased()Returnstrue
if this NDArray has been released.- Specified by:
isReleased
in interfaceNDArray
- Returns:
true
if this NDArray has been released
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceNDArray
- Specified by:
close
in interfaceNDResource
-
equals
-
hashCode
public int hashCode() -
toString
-