Interface NDArray
- All Superinterfaces:
 AutoCloseable,BytesSupplier,NDResource
- All Known Subinterfaces:
 LazyNDArray,SparseNDArray
- All Known Implementing Classes:
 NDArrayAdapter
NDArray is the core data structure for all mathematical computations. An NDArray represents a multidimensional, fixed-size homogeneous array. It has very similar behaviour to the Numpy python package with the addition of efficient computing. To understand how to manage NDArray lifecycle, please refer to NDArray Memory Management Guide
- 
Method Summary
Modifier and TypeMethodDescriptionabs()Returns the absolute value of thisNDArrayelement-wise.acos()Returns the inverse trigonometric cosine of thisNDArrayelement-wise.acosh()Returns the inverse hyperbolic cosine of thisNDArrayelement-wise.Adds otherNDArrays to thisNDArrayelement-wise.Adds a number to thisNDArrayelement-wise.Adds otherNDArrays to thisNDArrayelement-wise in place.Adds a number to thisNDArrayelement-wise in place.default NDArrayall()Returnstrueif all elements within thisNDArrayare non-zero ortrue.default booleanReturnstrueif twoNDArrays are element-wise equal within a tolerance.default booleanReturnstrueif twoNDArrayare element-wise equal within a tolerance.default NDArrayany()Returnstrueif any of the elements within thisNDArrayare non-zero ortrue.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.default NDArrayargSort()Returns the indices that would sort thisNDArray.default NDArrayargSort(int axis) Returns the indices that would sort thisNDArraygiven the axis.argSort(int axis, boolean ascending) Returns the indices that would sort thisNDArraygiven the axis.asin()Returns the inverse trigonometric sine of thisNDArrayelement-wise.asinh()Returns the inverse hyperbolic sine of thisNDArrayelement-wise.atan()Returns the inverse trigonometric tangent of thisNDArrayelement-wise.Returns the element-wise arc-tangent of this/other choosing the quadrant correctly.atanh()Returns the inverse hyperbolic tangent of thisNDArrayelement-wise.Batchwise product of thisNDArrayand the otherNDArray.batchMatMul(NDArray other) Batch product matrix of thisNDArrayand the otherNDArray.default NDArraybooleanMask(NDArray index) Returns portion of thisNDArraygiven the index booleanNDArrayalong first axis.booleanMask(NDArray index, int axis) Returns portion of thisNDArraygiven the index booleanNDArrayalong given axis.default NDArraybroadcast(long... shape) Broadcasts thisNDArrayto be the given shape.Broadcasts thisNDArrayto be the given shape.cbrt()Returns the cube-root of thisNDArrayelement-wise.ceil()Returns the ceiling of thisNDArrayelement-wise.Clips (limit) the values in thisNDArray.voidclose()complex()Convert a general NDArray to its complex math format.default NDArrayJoins aNDArrayalong the first axis.default NDArrayJoins aNDArrayalong an existing axis.conj()Conjugate complex array.booleancontentEquals(NDArray other) booleancontentEquals(Number number) default voidDeep-copies the currentNDArrayto the one passed in.cos()Returns the trigonometric cosine of thisNDArrayelement-wise.cosh()Returns the hyperbolic cosine of thisNDArrayelement-wise.default NDArrayCounts the number of non-zero values in thisNDArray.default NDArraycountNonzero(int axis) Counts the number of non-zero values in thisNDArrayalong a given axis.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.static NDArrayDecodesNDArrayfrom bytes.diagonal()Return specified diagonals.diagonal(int offset) Return specified diagonals.diagonal(int offset, int axis1, int axis2) Return specified diagonals.diff(int n, int dim) Calculates the n-th order discrete difference along a given dimension.Divides thisNDArrayby the otherNDArrayelement-wise.Divides thisNDArrayby a number element-wise.Divides thisNDArrayby the otherNDArrayelement-wise in place.Divides thisNDArrayby a number element-wise in place.Dot product of thisNDArrayand the otherNDArray.default NDArrayReturns a copy of thisNDArray.default byte[]encode()EncodesNDArrayto byte array.Returns the booleanNDArrayfor element-wise "Equals" comparison.Returns the booleanNDArrayfor element-wise "Equals" comparison.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 thisNDArrayelement-wise.expandDims(int axis) Expands theShapeof aNDArray.default NDArrayfft(long length) Computes the one-dimensional discrete Fourier Transform.fft(long length, long axis) Computes the one-dimensional discrete Fourier Transform.default NDArrayfft2(long[] sizes) Computes the two-dimensional Discrete Fourier Transform along the last 2 axes.fft2(long[] sizes, long[] axes) Computes the two-dimensional Discrete Fourier Transform.flatten()Flattens thisNDArrayinto a 1-DNDArrayin row-major order.flatten(int startDim, int endDim) Flattens thisNDArrayinto a partially flattenNDArray.flip(int... axes) Returns the reverse order of elements in an array along the given axis.floor()Returns the floor of thisNDArrayelement-wise.gammaln()Return the log of the absolute value of the gamma function of thisNDArrayelement-wise.Returns a partialNDArraypointed by the indexed array.Returns a partialNDArraypointed by the indexed array.default NDArrayget(long... indices) Returns a partialNDArray.default NDArrayReturns a partialNDArray.default NDArrayReturns a partialNDArray.default NDArrayReturns a partialNDArray.default NDArrayReturns a partialNDArray.default NDArrayReturns a partialNDArray.default booleangetBoolean(long... indices) Returns a boolean element from thisNDArray.default bytegetByte(long... indices) Returns an byte element from thisNDArray.Returns theDataTypeof thisNDArray.Returns theDeviceof thisNDArray.default doublegetDouble(long... indices) Returns a double element from thisNDArray.default floatgetFloat(long... indices) Returns a float element from thisNDArray.Returns the gradientNDArrayattached to thisNDArray.default intgetInt(long... indices) Returns an int element from thisNDArray.default longgetLong(long... indices) Returns a long element from thisNDArray.getName()Returns the name of thisNDArray.ai.djl.ndarray.internal.NDArrayExReturns an internal representative of NativeNDArray.default NDArraygetScalar(long... indices) Returns a scalarNDArraycorresponding to a single element.getShape()Returns theShapeof thisNDArray.Returns theSparseFormatof thisNDArray.getUid()Returns unique identifier of thisNDArray.default intgetUint8(long... indices) Returns an integer element from thisNDArraythat represent unsigned integer with 8 bits.Returns the booleanNDArrayfor element-wise "Greater Than" comparison.Returns the booleanNDArrayfor element-wise "Greater" comparison.Returns the booleanNDArrayfor element-wise "Greater or equals" comparison.Returns the booleanNDArrayfor element-wise "Greater or equals" comparison.booleanReturns true if the gradient calculation is required for thisNDArray.default NDArrayifft(long length) Computes the one dimensional inverse discrete Fourier transform.ifft(long length, long axis) Computes the one dimensional inverse discrete Fourier transform.default NDArrayifft2(long[] sizes) Computes the two-dimensional inverse Discrete Fourier Transform along the last 2 axes.ifft2(long[] sizes, long[] axes) Computes the two-dimensional inverse Discrete Fourier Transform.voidReplace the handle of the NDArray with the other.inverse()Computes the inverse of squareNDArrayif it exists.default NDArrayirfft(long length) Computes the one dimensional inverse Fourier transform of real-valued input.irfft(long length, long axis) Computes the one dimensional inverse Fourier transform of real-valued input.default booleanisEmpty()Returnstrueif thisNDArrayis special case: no-valueNDArray.Returns the booleanNDArraywith valuetruewhere thisNDArray's entries are infinite, orfalsewhere they are not infinite.isNaN()Returns the booleanNDArraywith valuetruewhere thisNDArray's entries are NaN, orfalsewhere they are not NaN.booleanReturnstrueif this NDArray has been released.default booleanisScalar()default booleanisSparse()default NDArraylike()Returns an uninitializedNDArraywith the sameShape,DataTypeandSparseFormatas the inputNDArray.log()Returns the natural logarithmic value of thisNDArrayelement-wise.log10()Returns the base 10 logarithm of thisNDArrayelement-wise.log2()Returns the base 2 logarithm of thisNDArrayelement-wise.logicalAnd(NDArray other) Returns the truth value of thisNDArrayAND the otherNDArrayelement-wise.Computes the truth value of NOT thisNDArrayelement-wise.Computes the truth value of thisNDArrayOR the otherNDArrayelement-wise.logicalXor(NDArray other) Computes the truth value of thisNDArrayXOR the otherNDArrayelement-wise.logSoftmax(int axis) Applies the softmax function followed by a logarithm.Returns the booleanNDArrayfor element-wise "Less" comparison.Returns the booleanNDArrayfor element-wise "Less" comparison.Returns the booleanNDArrayfor element-wise "Less or equals" comparison.Returns the booleanNDArrayfor element-wise "Less or equals" comparison.Product matrix of thisNDArrayand the otherNDArray.max()Returns the maximum of thisNDArray.default NDArraymax(int[] axes) Returns the maximum of thisNDArrayalong given axes.max(int[] axes, boolean keepDims) Returns the maximum of thisNDArrayalong given axes.Returns the maximum of thisNDArrayand the otherNDArrayelement-wise.Returns the maximum of thisNDArrayand a number element-wise.mean()Returns the average of thisNDArray.default NDArraymean(int[] axes) Returns the average of thisNDArrayalong given axes.mean(int[] axes, boolean keepDims) Returns the average of thisNDArrayalong given axes.median()Returns median value for thisNDArray.median(int[] axes) Returns median value along given axes.min()Returns the minimum of thisNDArray.default NDArraymin(int[] axes) Returns the minimum of thisNDArrayalong given axes.min(int[] axes, boolean keepDims) Returns the minimum of thisNDArrayalong given axes.Returns the minimum of thisNDArrayand the otherNDArrayelement-wise.Returns the minimum of thisNDArrayand 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 thisNDArrayby otherNDArrays element-wise.Multiplies thisNDArrayby a number element-wise.Multiplies thisNDArrayby otherNDArrayelement-wise in place.Multiplies thisNDArrayby a number element-wise in place.neg()Returns the numerical negativeNDArrayelement-wise.negi()Returns the numerical negativeNDArrayelement-wise in place.Returns the booleanNDArrayfor element-wise "Not equals" comparison.Returns the booleanNDArrayfor element-wise "Not equals" comparison.default NDArraynone()Returnstrueif none of the elements within thisNDArrayare non-zero ortrue.nonzero()Returns the indices of elements that are non-zero.default NDArraynorm()Returns the norm of thisNDArray.norm(boolean keepDims) Returns the norm of thisNDArray.default NDArraynorm(int[] axes) Returns the norm of thisNDArray.default NDArraynorm(int[] axes, boolean keepDims) Returns the norm of thisNDArray.norm(int ord, int[] axes, boolean keepDims) Returns the norm of thisNDArray.default NDArrayPerforms Lp normalization of the array over specified dimension.default NDArraynormalize(double exponent, long dim) Performs Lp normalization of the array over specified dimension.normalize(double exponent, long dim, double eps) Performs Lp normalization of the array over specified dimension.default NDArrayoneHot(int depth) Returns a one-hotNDArray.Returns a one-hotNDArray.default NDArrayReturns a one-hotNDArray.default NDArrayonesLike()Pads thisNDArraywith the givenShape.percentile(Number percentile) Returns percentile for thisNDArray.percentile(Number percentile, int[] axes) Returns median along given dimension(s).Takes the power of thisNDArraywith the otherNDArrayelement-wise.Takes the power of thisNDArraywith a number element-wise.Takes the power of thisNDArraywith the otherNDArrayelement-wise in place.Takes the power of thisNDArraywith a number element-wise in place.prod()Returns the product of thisNDArray.default NDArrayprod(int[] axes) Returns the product of thisNDArrayelements over the given axes.prod(int[] axes, boolean keepDims) Returns the product of thisNDArrayelements over the given axes.Sets the entries ofNDArraypointed 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 thisNDArraythe number of times given repeats along given axis.repeat(long repeats) Repeats element of thisNDArraythe number of times given repeats.repeat(long[] repeats) Repeats element of thisNDArraythe number of times given repeats along each axis.Repeats element of thisNDArrayto match the desired shape.default NDArrayreshape(long... newShape) Reshapes thisNDArrayto the givenShape.Reshapes thisNDArrayto the givenShape.default NDArrayrfft(long length) Computes the one dimensional Fourier transform of real-valued input.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 thisNDArrayelement-wise.default NDArrayscaleGradient(double scale) Returns an NDArray equal to this that magnifies the gradient propagated to this by a constant.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.default voidset(byte[] data) Sets thisNDArrayvalue from an array of bytes.default voidset(double[] data) Sets thisNDArrayvalue from an array of doubles.default voidset(float[] data) Sets thisNDArrayvalue from an array of floats.default voidset(int[] data) Sets thisNDArrayvalue from an array of ints.default voidset(long[] data) Sets thisNDArrayvalue from an array of longs.default voidSets the specified index in thisNDArraywith the given values.default voidSets the specified index in thisNDArraywith the given value.default voidSets the specific index by a function.default voidSets theNDArrayby boolean mask or integer index.voidSets thisNDArrayvalue fromBuffer.voidSets name of thisNDArray.voidsetRequiresGradient(boolean requiresGrad) Attaches a gradientNDArrayto thisNDArrayand marks it soGradientCollector.backward(NDArray)can compute the gradient with respect to it.default voidSets the specified scalar in thisNDArraywith the given value.default booleanshapeEquals(NDArray other) Checks 2NDArrays for equal shapes.sign()Returns the element-wise sign.signi()Returns the element-wise sign in-place.sin()Returns the trigonometric sine of thisNDArrayelement-wise.sinh()Returns the hyperbolic sine of thisNDArrayelement-wise.default longsize()Returns the total number of elements in thisNDArray.default longsize(int axis) Returns the size of thisNDArrayalong a given axis.softmax(int axis) Applies the softmax function along the given axis.sort()Sorts the flattenedNDArray.sort(int axis) Sorts the flattenedNDArray.default NDListsplit(long sections) Splits thisNDArrayinto multiple subNDArrays given sections along first axis.default NDListsplit(long[] indices) Splits thisNDArrayinto multiple sub-NDArrays given indices along first axis.split(long[] indices, int axis) Splits thisNDArrayinto multiple sub-NDArrays given indices along given axis.default NDListsplit(long sections, int axis) Splits thisNDArrayinto multiple subNDArrays given sections along the given axis.sqrt()Returns the square root of thisNDArrayelement-wise.square()Returns the square of thisNDArrayelement-wise.default NDArraysqueeze()Removes all singleton dimensions from thisNDArrayShape.default NDArraysqueeze(int axis) Removes a singleton dimension at the given axis.squeeze(int[] axes) Removes singleton dimensions at the given axes.default NDArrayJoins aNDArrayalong the first axis.default NDArrayJoins aNDArrayalong a new axis.default NDArrayComputes the Short Time Fourier Transform (STFT).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 otherNDArrayfrom thisNDArrayelement-wise.Subtracts a number from thisNDArrayelement-wise.Subtracts the otherNDArrayfrom thisNDArrayelement-wise in place.Subtracts a number from thisNDArrayelement-wise in place.sum()Returns the sum of thisNDArray.default NDArraysum(int[] axes) Returns the sum of thisNDArrayalong given axes.sum(int[] axes, boolean keepDims) Returns the sum of thisNDArrayalong given axes.default NDArrayswapAxes(int axis1, int axis2) Interchanges two axes of thisNDArray.default NDArrayReturns a partialNDArraypointed by index according to linear indexing, and the of output is of the same shape as index.Returns a partialNDArraypointed by index according to linear indexing, and the of output is of the same shape as index.tan()Returns the trigonometric tangent of thisNDArrayelement-wise.tanh()Returns the hyperbolic tangent of thisNDArrayelement-wise.tile(int axis, long repeats) Constructs aNDArrayby repeating thisNDArraythe number of times given by repeats along given axis.tile(long repeats) Constructs aNDArrayby repeating thisNDArraythe number of times given repeats.tile(long[] repeats) Constructs aNDArrayby repeating thisNDArraythe number of times given by repeats.Constructs aNDArrayby repeating thisNDArraythe number of times to match the desired shape.default Number[]toArray()Converts thisNDArrayto a Number array based on itsDataType.default boolean[]Converts thisNDArrayto a boolean array.default byte[]Converts thisNDArrayto a byte array.default ByteBufferReturns theByteBufferpresentation of the object.toByteBuffer(boolean tryDirect) Returns theByteBufferpresentation of the object.default StringRuns the debug string representation of thisNDArray.default StringtoDebugString(boolean withContent) Runs the debug string representation of thisNDArray.default StringtoDebugString(int maxSize, int maxDepth, int maxRows, int maxColumns, boolean withContent) Runs the debug string representation of thisNDArray.Converts thisNDArrayfrom radians to degrees element-wise.toDense()Returns a dense representation of the sparseNDArray.Moves thisNDArrayto a differentDevice.default double[]Converts thisNDArrayto a double array.default float[]Converts thisNDArrayto a float array.default int[]Converts thisNDArrayto an int array.default long[]Converts thisNDArrayto a long array.default NDListtopK(int k, int axis) Returns (values, indices) of the top k values along given axis.topK(int k, int axis, boolean largest, boolean sorted) Returns (values, indices) of the top k values along given axis.Converts thisNDArrayfrom degrees to radians element-wise.default short[]Converts thisNDArrayto an short array.toSparse(SparseFormat fmt) Returns a sparse representation ofNDArray.default String[]Converts thisNDArrayto a String array.String[]toStringArray(Charset charset) Converts thisNDArrayto a String array with the specified charset.Converts thisNDArrayto a differentDataType.default int[]Converts thisNDArrayto a uint8 array.default long[]Converts thisNDArrayto an unsigned int array.default int[]Converts thisNDArrayto an short array.default NDArraytrace()Returns the sum along diagonals of thisNDArray.default NDArraytrace(int offset) Returns the sum along diagonals of thisNDArray.trace(int offset, int axis1, int axis2) Returns the sum along diagonals of thisNDArray.Returns thisNDArraywith axes transposed.transpose(int... axes) Returns thisNDArraywith given axes transposed.trunc()Returns the truncated value of thisNDArrayelement-wise.default NDListunique()Returns the unique elements of the input tensor.default NDListunique(boolean sorted, boolean returnInverse, boolean returnCounts) Returns the unique elements of the input tensor.Returns the unique elements of the input tensor.Computes this * log(other).default NDArrayMethods inherited from interface ai.djl.ndarray.BytesSupplier
getAsBytes, getAsObject, getAsStringMethods inherited from interface ai.djl.ndarray.NDResource
attach, detach, getManager, returnResource, tempAttach 
- 
Method Details
- 
decode
DecodesNDArrayfrom bytes.- Parameters:
 manager-NDManagerused to create thisNDArraybyteArray- data used to decode- Returns:
 - decoded 
NDArray 
 - 
getName
String getName()Returns the name of thisNDArray.- Returns:
 - the name of this 
NDArray 
 - 
setName
Sets name of thisNDArray.- Parameters:
 name- the name of thisNDArray
 - 
getUid
String getUid()Returns unique identifier of thisNDArray.- Returns:
 - unique identifier of this 
NDArray 
 - 
getDataType
DataType getDataType()Returns theDataTypeof thisNDArray.DataTypeis a definition of the precision level of theNDArray. All values inside the sameNDArraywould have the sameDataType.- Returns:
 - the 
DataTypeof thisNDArray 
 - 
getDevice
Device getDevice()Returns theDeviceof thisNDArray.Deviceclass contains the information where thisNDArraystored in memory, like CPU/GPU.- Returns:
 - the 
Deviceof thisNDArray 
 - 
getShape
Shape getShape()Returns theShapeof thisNDArray.Shapedefines how thisNDArrayis represented multi-dimensionally.- Returns:
 - the 
Shapeof thisNDArray 
 - 
getSparseFormat
SparseFormat getSparseFormat()Returns theSparseFormatof thisNDArray.- Returns:
 - the 
SparseFormatof thisNDArray 
 - 
isSparse
default boolean isSparse()- Returns:
 trueif thisNDArrayis aSparseNDArray
 - 
isScalar
default boolean isScalar()- Returns:
 trueif thisNDArrayis a scalarNDArraywith emptyShape
 - 
encode
default byte[] encode()EncodesNDArrayto byte array.- Returns:
 - byte array
 
 - 
toDevice
Moves thisNDArrayto a differentDevice. - 
toType
Converts thisNDArrayto a differentDataType. - 
setRequiresGradient
void setRequiresGradient(boolean requiresGrad) Attaches a gradientNDArrayto thisNDArrayand marks it soGradientCollector.backward(NDArray)can compute the gradient with respect to it.- Parameters:
 requiresGrad- ifNDArrayrequires gradient or not
 - 
getGradient
NDArray getGradient()Returns the gradientNDArrayattached to thisNDArray.- Returns:
 - the gradient 
NDArray - Throws:
 NullPointerException- when gradient is not initialized
 - 
hasGradient
boolean hasGradient()Returns true if the gradient calculation is required for thisNDArray.- Returns:
 - true if the gradient calculation is required for this 
NDArrayelse false 
 - 
stopGradient
NDArray stopGradient()Returns an NDArray equal to this that stop gradient propagation through it.- Returns:
 - an NDArray equal to this that stops gradient propagation through it
 
 - 
scaleGradient
Returns an NDArray equal to this that magnifies the gradient propagated to this by a constant.- Parameters:
 scale- how to much to magnify the gradient propagated to this- Returns:
 - an NDArray equal to this that magnifies the gradient propagated to this by a constant
 
 - 
size
default long size(int axis) Returns the size of thisNDArrayalong a given axis.- Parameters:
 axis- the axis to return the size for- Returns:
 - the size of this 
NDArrayalong a given axis 
 - 
size
default long size()Returns the total number of elements in thisNDArray.- Returns:
 - the number of elements in this 
NDArray 
 - 
toByteBuffer
Returns theByteBufferpresentation of the object.- Specified by:
 toByteBufferin interfaceBytesSupplier- Returns:
 - the 
ByteBufferpresentation of the object 
 - 
toByteBuffer
Returns theByteBufferpresentation of the object.If returned ByteBuffer is a DirectByteBuffer, it shared the same native memory as the NDArray. The native memory will be deleted when NDArray is closed.
Not all the engine support return DirectByteBuffer.
- Parameters:
 tryDirect- use DirectBuffer if possible- Returns:
 - the 
ByteBufferpresentation of the object 
 - 
toDoubleArray
default double[] toDoubleArray()Converts thisNDArrayto a double array.- Returns:
 - a double array
 - Throws:
 IllegalStateException- whenDataTypeof thisNDArraymismatches
 - 
toFloatArray
default float[] toFloatArray()Converts thisNDArrayto a float array.- Returns:
 - a float array
 - Throws:
 IllegalStateException- whenDataTypeof thisNDArraymismatches
 - 
toShortArray
default short[] toShortArray()Converts thisNDArrayto an short array.- Returns:
 - an int array
 - Throws:
 IllegalStateException- whenDataTypeof thisNDArraymismatches
 - 
toUnsignedShortArray
default int[] toUnsignedShortArray()Converts thisNDArrayto an short array.- Returns:
 - an int array
 - Throws:
 IllegalStateException- whenDataTypeof thisNDArraymismatches
 - 
toIntArray
default int[] toIntArray()Converts thisNDArrayto an int array.- Returns:
 - an int array
 - Throws:
 IllegalStateException- whenDataTypeof thisNDArraymismatches
 - 
toUnsignedIntArray
default long[] toUnsignedIntArray()Converts thisNDArrayto an unsigned int array.- Returns:
 - a long array
 - Throws:
 IllegalStateException- whenDataTypeof thisNDArraymismatches
 - 
toLongArray
default long[] toLongArray()Converts thisNDArrayto a long array.- Returns:
 - a long array
 - Throws:
 IllegalStateException- whenDataTypeof thisNDArraymismatches
 - 
toByteArray
default byte[] toByteArray()Converts thisNDArrayto a byte array.- Returns:
 - a byte array
 - Throws:
 IllegalStateException- whenDataTypeof thisNDArraymismatches
 - 
toUint8Array
default int[] toUint8Array()Converts thisNDArrayto a uint8 array.- Returns:
 - a uint8 array
 - Throws:
 IllegalStateException- whenDataTypeof thisNDArraymismatches
 - 
toBooleanArray
default boolean[] toBooleanArray()Converts thisNDArrayto a boolean array.- Returns:
 - a boolean array
 - Throws:
 IllegalStateException- whenDataTypeof thisNDArraymismatches
 - 
toStringArray
Converts thisNDArrayto a String array.This method is only applicable to the String typed NDArray and not for printing purpose
- Returns:
 - Array of Strings
 
 - 
toStringArray
Converts thisNDArrayto a String array with the specified charset.This method is only applicable to the String typed NDArray and not for printing purpose
- Parameters:
 charset- to charset for the string- Returns:
 - Array of Strings
 
 - 
toArray
Converts thisNDArrayto a Number array based on itsDataType.- Returns:
 - a Number array
 
 - 
set
Sets thisNDArrayvalue fromBuffer.- Parameters:
 buffer- the input buffered data
 - 
set
default void set(float[] data) Sets thisNDArrayvalue from an array of floats.- Parameters:
 data- the array of floats to set
 - 
set
default void set(int[] data) Sets thisNDArrayvalue from an array of ints.- Parameters:
 data- the array of integers to set
 - 
set
default void set(double[] data) Sets thisNDArrayvalue from an array of doubles.- Parameters:
 data- the array of doubles to set
 - 
set
default void set(long[] data) Sets thisNDArrayvalue from an array of longs.- Parameters:
 data- the array of longs to set
 - 
set
default void set(byte[] data) Sets thisNDArrayvalue from an array of bytes.- Parameters:
 data- the array of bytes to set
 - 
set
Sets the specified index in thisNDArraywith the given values.- Parameters:
 index- the locations to updatevalue- the value to replace with. Can broadcast if given smaller dimensions than the index
 - 
set
Sets the specified index in thisNDArraywith the given value.- Parameters:
 index- the locations to updatevalue- the value to replace with
 - 
set
Sets the specific index by a function.- Parameters:
 index- the locations to updatefunction- the function to change the value
 - 
set
Sets theNDArrayby boolean mask or integer index.- Parameters:
 index- the boolean or integerNDArraythat indicates what to getvalue- the value to replace with
 - 
setScalar
Sets the specified scalar in thisNDArraywith the given value.- Parameters:
 index- the single index to updatevalue- the value to replace with- Throws:
 IllegalArgumentException- thrown if the index does not correspond to a single element
 - 
get
Returns a partialNDArray.- Parameters:
 index- the section of thisNDArrayto return- Returns:
 - the partial 
NDArray 
 - 
get
Returns a partialNDArray.- Parameters:
 manager- the manager used to create the arraysindex- the section of thisNDArrayto return- Returns:
 - the partial 
NDArray 
 - 
get
Returns a partialNDArray.- Parameters:
 index- the boolean or integerNDArraythat indicates what to get- Returns:
 - the partial 
NDArray 
 - 
get
Returns a partialNDArray. - 
get
Returns a partialNDArray.- Parameters:
 indices- the indices with each index corresponding to the dimensions and negative indices starting from the end- Returns:
 - the partial 
NDArray 
 - 
get
Returns a partialNDArray.- Parameters:
 manager- the manager used to create the arraysindices- the indices with each index corresponding to the dimensions and negative indices starting from the end- Returns:
 - the partial 
NDArray 
 - 
gather
Returns a partialNDArraypointed 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
- Parameters:
 index- picks the elements of an NDArray to the same position as indexaxis- the entries of index are indices of axis- Returns:
 - the partial 
NDArrayof the same shape as index 
 - 
gatherNd
Returns a partialNDArraypointed 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
- Parameters:
 index- picks the elements of an NDArray to the same position as index- Returns:
 - the partial 
NDArrayof the same shape as index 
 - 
take
Returns a partialNDArraypointed by index according to linear indexing, and the of output is of the same shape as index.- Parameters:
 index- picks the elements of an NDArray and output to the same entry as in index- Returns:
 - the partial 
NDArrayof the same shape as index 
 - 
take
Returns a partialNDArraypointed by index according to linear indexing, and the of output is of the same shape as index.- Parameters:
 manager- the manager used to create the arraysindex- picks the elements of an NDArray and output to the same entry as in index- Returns:
 - the partial 
NDArrayof the same shape as index 
 - 
put
Sets the entries ofNDArraypointed by index, according to linear indexing, to be the numbers in value.Value has to be of the same shape as index.
- Parameters:
 index- select the entries of anNDArrayvalue- numbers to assign to the indexed entries- Returns:
 - the NDArray with updated values
 
 - 
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_- Parameters:
 axis- the axis along which to indexindex- 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 scatter- Returns:
 - the NDArray with updated values
 
 - 
getScalar
Returns a scalarNDArraycorresponding to a single element.- Parameters:
 indices- the indices of the scalar to return. Must return only a single element- Returns:
 - a scalar 
NDArraycorresponding to the element - Throws:
 IllegalArgumentException- thrown if the result is not a single element
 - 
getLong
default long getLong(long... indices) Returns a long element from thisNDArray.- Parameters:
 indices- the indices of the long element to return- Returns:
 - the element in the specified index as a long
 - Throws:
 IllegalArgumentException- thrown if the result is not a single element
 - 
getDouble
default double getDouble(long... indices) Returns a double element from thisNDArray.- Parameters:
 indices- the indices of the double element to return- Returns:
 - the element in the specified index as a double
 - Throws:
 IllegalArgumentException- thrown if the result is not a single element
 - 
getFloat
default float getFloat(long... indices) Returns a float element from thisNDArray.- Parameters:
 indices- the indices of the long element to return- Returns:
 - the element in the specified index as a float
 - Throws:
 IllegalArgumentException- thrown if the result is not a single element
 - 
getInt
default int getInt(long... indices) Returns an int element from thisNDArray.- Parameters:
 indices- the indices of the int element to return- Returns:
 - the element in the specified index as an integer
 - Throws:
 IllegalArgumentException- thrown if the result is not a single element
 - 
getByte
default byte getByte(long... indices) Returns an byte element from thisNDArray.- Parameters:
 indices- the indices of the byte element to return- Returns:
 - the element in the specified index as a byte
 - Throws:
 IllegalArgumentException- thrown if the result is not a single element
 - 
getUint8
default int getUint8(long... indices) Returns an integer element from thisNDArraythat represent unsigned integer with 8 bits.- Parameters:
 indices- the indices of the unsigned 8 bits integer element to return- Returns:
 - the element in the specified index as a uint8
 - Throws:
 IllegalArgumentException- thrown if the result is not a single element
 - 
getBoolean
default boolean getBoolean(long... indices) Returns a boolean element from thisNDArray.- Parameters:
 indices- the indices of the int element to return- Returns:
 - the element in the specified index as a boolean
 - Throws:
 IllegalArgumentException- thrown if the result is not a single element
 - 
copyTo
Deep-copies the currentNDArrayto the one passed in.- Parameters:
 array- thisNDArrayprepared to be copied to
 - 
duplicate
Returns a copy of thisNDArray.- Returns:
 - a copy of this 
NDArray 
 - 
booleanMask
Returns portion of thisNDArraygiven the index booleanNDArrayalong first axis.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f, 5f, 6f}, new Shape(3, 2)); jshell> NDArray mask = manager.create(new boolean[] {true, false, true}); jshell> array.booleanMask(mask); ND: (2, 2) cpu() float32 [[1., 2.], [5., 6.], ]- Parameters:
 index- booleanNDArraymask- Returns:
 - the result 
NDArray 
 - 
booleanMask
Returns portion of thisNDArraygiven the index booleanNDArrayalong given axis.- Parameters:
 index- booleanNDArraymaskaxis- an integer that represents the axis ofNDArrayto 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
sequenceLengthis used to handle variable-length sequences. sequence_length should be an input array of positive ints of dimension [batch_size].- 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
sequenceLengthis used to handle variable-length sequences. sequence_length should be an input array of positive ints of dimension [batch_size].- Parameters:
 sequenceLength- used to handle variable-length sequences- Returns:
 - the result 
NDArray 
 - 
zerosLike
Returns anNDArrayof zeros with the sameShape,DataTypeandSparseFormatas the inputNDArray.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.zerosLike(); ND: (2, 3) cpu() float32 [[0., 0., 0.], [0., 0., 0.], ]
- Returns:
 - a 
NDArrayfilled with zeros 
 - 
onesLike
Returns anNDArrayof ones with the sameShape,DataTypeandSparseFormatas the inputNDArray.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.onesLike(); ND: (2, 3) cpu() float32 [[1., 1., 1.], [1., 1., 1.], ]
- Returns:
 - a 
NDArrayfilled with ones 
 - 
like
Returns an uninitializedNDArraywith the sameShape,DataTypeandSparseFormatas the inputNDArray.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.like(); // uninitialized NDArray ND: (2, 3) cpu() float32 [[ 9.80908925e-45, 0.00000000e+00, 0.00000000e+00], [ 0.00000000e+00, 7.61595174e-07, 2.80259693e-44], ]
- Returns:
 - the result 
NDArray 
 - 
contentEquals
Returnstrueif all elements in thisNDArrayare equal to theNumber.Examples
jshell> NDArray array = manager.ones(new Shape(2, 3)); jshell> array.contentEquals(1); // return true instead of boolean NDArray true
- Parameters:
 number- the number to compare- Returns:
 - the boolean result
 
 - 
contentEquals
Returnstrueif all elements in thisNDArrayare 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- Parameters:
 other- the otherNDArrayto compare- Returns:
 - the boolean result
 
 - 
shapeEquals
Checks 2NDArrays for equal shapes.Shapes are considered equal if:
- Both 
NDArrays have equal rank, and - size(0)...size(rank()-1) are equal for both 
NDArrays 
Examples
jshell> NDArray array1 = manager.ones(new Shape(1, 2, 3)); jshell> NDArray array2 = manager.create(new Shape(1, 2, 3)); jshell> array1.shapeEquals(array2); // return true instead of boolean NDArray true
- Parameters:
 other- the otherNDArray- Returns:
 trueif theShapes are the same
 - Both 
 - 
allClose
Returnstrueif twoNDArrays are element-wise equal within a tolerance.Examples
jshell> NDArray array1 = manager.create(new double[] {1e10, 1e-7}); jshell> NDArray array2 = manager.create(new double[] {1.00001e10, 1e-8}); jshell> array1.allClose(array2); // return false instead of boolean NDArray false jshell> NDArray array1 = manager.create(new double[] {1e10, 1e-8}); jshell> NDArray array2 = manager.create(new double[] {1.00001e10, 1e-9}); jshell> array1.allClose(array2); // return true instead of boolean NDArray true- Parameters:
 other- theNDArrayto compare with- Returns:
 - the boolean result
 
 - 
allClose
Returnstrueif twoNDArrayare element-wise equal within a tolerance.Examples
jshell> NDArray array1 = manager.create(new double[] {1e10, 1e-7}); jshell> NDArray array2 = manager.create(new double[] {1.00001e10, 1e-8}); jshell> array1.allClose(array2, 1e-05, 1e-08, false); // return false instead of boolean NDArray false jshell> NDArray array1 = manager.create(new double[] {1e10, 1e-8}); jshell> NDArray array2 = manager.create(new double[] {1.00001e10, 1e-9}); jshell> array1.allClose(array2, 1e-05, 1e-08, false); // return true instead of boolean NDArray true jshell> NDArray array1 = manager.create(new float[] {1f, Float.NaN}); jshell> NDArray array2 = manager.create(new float[] {1f, Float.NaN}); jshell> array1.allClose(array2, 1e-05, 1e-08, true); // return true instead of boolean NDArray true- Parameters:
 other- theNDArrayto compare withrtol- the relative tolerance parameteratol- the absolute tolerance parameterequalNan- whether to compare NaN’s as equal. Iftrue, NaN’s in theNDArraywill be considered equal to NaN’s in the otherNDArray- Returns:
 - the boolean result
 
 - 
eq
Returns the booleanNDArrayfor element-wise "Equals" comparison.Examples
jshell> NDArray array = manager.ones(new Shape(1)); jshell> array.eq(1); ND: (1) cpu() boolean [ true]
- Parameters:
 n- the number to compare- Returns:
 - the boolean 
NDArrayfor element-wise "Equals" comparison 
 - 
eq
Returns the booleanNDArrayfor 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]- Parameters:
 other- theNDArrayto compare- Returns:
 - the boolean 
NDArrayfor element-wise "Equals" comparison 
 - 
neq
Returns the booleanNDArrayfor 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], ]
- Parameters:
 n- the number to compare- Returns:
 - the boolean 
NDArrayfor element-wise "Not equals" comparison 
 - 
neq
Returns the booleanNDArrayfor 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], ]- Parameters:
 other- theNDArrayto compare- Returns:
 - the boolean 
NDArrayfor element-wise "Not equals" comparison 
 - 
gt
Returns the booleanNDArrayfor element-wise "Greater" comparison.Examples
jshell> NDArray array = manager.create(new float[] {4f, 2f}); jshell> array.gt(2f); ND: (2) cpu() boolean [ true, false]- Parameters:
 n- the number to compare- Returns:
 - the boolean 
NDArrayfor element-wise "Greater" comparison 
 - 
gt
Returns the booleanNDArrayfor 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]- Parameters:
 other- theNDArrayto compare- Returns:
 - the boolean 
NDArrayfor element-wis "Greater Than" comparison 
 - 
gte
Returns the booleanNDArrayfor 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]- Parameters:
 n- the number to compare- Returns:
 - the boolean 
NDArrayfor element-wise "Greater or equals" comparison 
 - 
gte
Returns the booleanNDArrayfor 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]- Parameters:
 other- the number to compare- Returns:
 - the boolean 
NDArrayfor "Greater or equals" comparison 
 - 
lt
Returns the booleanNDArrayfor element-wise "Less" comparison.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.lt(2f); ND: (2) cpu() boolean [ true, false]- Parameters:
 n- the number to compare- Returns:
 - the boolean 
NDArrayfor element-wise "Less" comparison 
 - 
lt
Returns the booleanNDArrayfor 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]- Parameters:
 other- theNDArrayto compare- Returns:
 - the boolean 
NDArrayfor element-wise "Less" comparison 
 - 
lte
Returns the booleanNDArrayfor 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]- Parameters:
 n- the number to compare- Returns:
 - the boolean 
NDArrayfor element-wise "Less or equals" comparison 
 - 
lte
Returns the booleanNDArrayfor 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]- Parameters:
 other- theNDArrayto compare- Returns:
 - the boolean 
NDArrayfor element-wise "Less or equals" comparison 
 - 
add
Adds a number to thisNDArrayelement-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.add(2f); ND: (2) cpu() float32 [3., 4.]- Parameters:
 n- the number to add- Returns:
 - the result 
NDArray 
 - 
add
Adds otherNDArrays to thisNDArrayelement-wise.The shapes of this
NDArrayand otherNDArraymust 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.], ]
- Parameters:
 other- the otherNDArrays to add- Returns:
 - the result 
NDArray - Throws:
 IllegalArgumentException- others arrays must have at least one element
 - 
sub
Subtracts a number from thisNDArrayelement-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.sub(2f); ND: (2) cpu() float32 [-1., 0.]- Parameters:
 n- the number to subtract from- Returns:
 - the result 
NDArray 
 - 
sub
Subtracts the otherNDArrayfrom thisNDArrayelement-wise.The shapes of this
NDArrayand otherNDArrays 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.], ]
- Parameters:
 other- the otherNDArrayto subtract from- Returns:
 - the result 
NDArray 
 - 
mul
Multiplies thisNDArrayby a number element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.mul(3f); ND: (2) cpu() float32 [3., 6.]- Parameters:
 n- the number to multiply by- Returns:
 - the result 
NDArray 
 - 
mul
Multiplies thisNDArrayby otherNDArrays element-wise.The shapes of this
NDArrayand otherNDArraymust 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.], ]
- Parameters:
 other- the otherNDArrays to multiply by- Returns:
 - the result 
NDArray - Throws:
 IllegalArgumentException- others arrays must have at least one element
 - 
div
Divides thisNDArrayby 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. ]
- Parameters:
 n- the number to divide by- Returns:
 - the result 
NDArray 
 - 
div
Divides thisNDArrayby the otherNDArrayelement-wise.The shapes of this
NDArrayand the otherNDArraymust 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], ]
- Parameters:
 other- the otherNDArrayto divide by- Returns:
 - the result 
NDArray 
 - 
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.]
- Parameters:
 n- the divisor number- Returns:
 - the result 
NDArray 
 - 
mod
Returns element-wise remainder of division.The shapes of this
NDArrayand the otherNDArraymust 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.]- Parameters:
 other- the divisorNDArray- Returns:
 - the result 
NDArray 
 - 
pow
Takes the power of thisNDArraywith 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.]
- Parameters:
 n- the number to take the power with- Returns:
 - the result 
NDArray 
 - 
pow
Takes the power of thisNDArraywith the otherNDArrayelement-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.], ]- Parameters:
 other- the otherNDArrayto take the power with- Returns:
 - the result 
NDArray 
 - 
xlogy
Computes this * log(other).- Parameters:
 other- other the otherNDArray- Returns:
 - the result 
NDArray 
 - 
addi
Adds a number to thisNDArrayelement-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.]- Parameters:
 n- the number to add- Returns:
 - the result 
NDArray 
 - 
addi
Adds otherNDArrays to thisNDArrayelement-wise in place.The shapes of this
NDArrayand otherNDArrays 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.]- Parameters:
 other- the otherNDArrays to add- Returns:
 - the result 
NDArray 
 - 
subi
Subtracts a number from thisNDArrayelement-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.]- Parameters:
 n- the number to subtract- Returns:
 - the result 
NDArray 
 - 
subi
Subtracts the otherNDArrayfrom thisNDArrayelement-wise in place.The shapes of this
NDArrayand otherNDArrays 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.], ]
- Parameters:
 other- the otherNDArrayto subtract from- Returns:
 - the result 
NDArray 
 - 
muli
Multiplies thisNDArrayby 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.]- Parameters:
 n- the number to multiply by- Returns:
 - the result 
NDArray 
 - 
muli
Multiplies thisNDArrayby otherNDArrayelement-wise in place.The shapes of this
NDArrayand otherNDArrays 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.], ]
- Parameters:
 other- the other NDArrays to multiply with- Returns:
 - the result 
NDArray 
 - 
divi
Divides thisNDArrayby 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. ]
- Parameters:
 n- the number to divide values by- Returns:
 - the array after applying division operation
 
 - 
divi
Divides thisNDArrayby the otherNDArrayelement-wise in place.The shapes of this
NDArrayand the otherNDArraymust 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], ]
- Parameters:
 other- the otherNDArrayto divide by- Returns:
 - the result of the divide
 
 - 
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.]
- Parameters:
 n- the divisor number- Returns:
 - the result 
NDArray 
 - 
modi
Returns in place element-wise remainder of division in place.The shapes of this
NDArrayand the otherNDArraymust 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.]- Parameters:
 other- the divisorNDArray- Returns:
 - the result of the divide
 
 - 
powi
Takes the power of thisNDArraywith 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.]
- Parameters:
 n- the number to raise the power to- Returns:
 - the result 
NDArray 
 - 
powi
Takes the power of thisNDArraywith the otherNDArrayelement-wise in place.The shapes of this
NDArrayand the otherNDArraymust 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.], ]- Parameters:
 other- the otherNDArrayto take the power with- Returns:
 - the result 
NDArray 
 - 
sign
NDArray sign()Returns the element-wise sign.- Returns:
 - the result 
NDArray 
 - 
signi
NDArray signi()Returns the element-wise sign in-place.- Returns:
 - the result 
NDArray 
 - 
maximum
Returns the maximum of thisNDArrayand 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.]- Parameters:
 n- the number to be compared- Returns:
 - the maximum of this 
NDArrayand a number element-wise 
 - 
maximum
Returns the maximum of thisNDArrayand the otherNDArrayelement-wise.The shapes of this
NDArrayand the otherNDArraymust 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. ], ]- Parameters:
 other- theNDArrayto be compared- Returns:
 - the maximum of this 
NDArrayand the otherNDArrayelement-wise 
 - 
minimum
Returns the minimum of thisNDArrayand 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.]- Parameters:
 n- the number to be compared- Returns:
 - the minimum of this 
NDArrayand a number element-wise 
 - 
minimum
Returns the minimum of thisNDArrayand the otherNDArrayelement-wise.The shapes of this
NDArrayand the otherNDArraymust 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. ], ]- Parameters:
 other- theNDArrayto be compared- Returns:
 - the minimum of this 
NDArrayand the otherNDArrayelement-wise 
 - 
neg
NDArray neg()Returns the numerical negativeNDArrayelement-wise.jshell> NDArray array = manager.arange(5f); jshell> array.neg(); ND: (5) cpu() float32 [-0., -1., -2., -3., -4.]
- Returns:
 - the result 
NDArray 
 - 
negi
NDArray negi()Returns the numerical negativeNDArrayelement-wise in place.jshell> NDArray array = manager.arange(5f); jshell> array.negi(); jshell> array; ND: (5) cpu() float32 [-0., -1., -2., -3., -4.]
- Returns:
 - the result 
NDArray 
 - 
abs
NDArray abs()Returns the absolute value of thisNDArrayelement-wise.Examples
jshell> NDArray array = manager.create(new float[] {-1f, -2f}); jshell> array.abs(); ND: (2) cpu() float32 [1., 2.]- Returns:
 - the result 
NDArray 
 - 
square
NDArray square()Returns the square of thisNDArrayelement-wise.Examples
jshell> NDArray array = manager.create(new float[] {2f, -3f}); jshell> array.square(); ND: (2) cpu() float32 [4., 9.]- Returns:
 - the result 
NDArray 
 - 
sqrt
NDArray sqrt()Returns the square root of thisNDArrayelement-wise.Examples
jshell> NDArray array = manager.create(new float[] {4f}); jshell> array.sqrt(); ND: (1) cpu() float32 [2., ]- Returns:
 - the result 
NDArray 
 - 
cbrt
NDArray cbrt()Returns the cube-root of thisNDArrayelement-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 8f, 27f}); jshell> array.cbrt(); ND: (3) cpu() float32 [1., 2., 3.]- Returns:
 - the result 
NDArray 
 - 
floor
NDArray floor()Returns the floor of thisNDArrayelement-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.]- Returns:
 - the result 
NDArray 
 - 
ceil
NDArray ceil()Returns the ceiling of thisNDArrayelement-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.]- Returns:
 - the result 
NDArray 
 - 
round
NDArray round()Returns the round of thisNDArrayelement-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.]- Returns:
 - the result 
NDArray 
 - 
trunc
NDArray trunc()Returns the truncated value of thisNDArrayelement-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.]- Returns:
 - the result 
NDArray 
 - 
exp
NDArray exp()Returns the exponential value of thisNDArrayelement-wise.Examples
jshell> NDArray array = manager.create(new float[] {0f, 2.5f}); jshell> array.exp(); ND: (2) cpu() float32 [ 1. , 12.1825]- Returns:
 - the result 
NDArray 
 - 
gammaln
NDArray gammaln()Return the log of the absolute value of the gamma function of thisNDArrayelement-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]- Returns:
 - the result 
NDArray 
 - 
log
NDArray log()Returns the natural logarithmic value of thisNDArrayelement-wise.Examples
jshell> NDArray array = manager.create(new float[] {0f, 2.5f}); jshell> array.log(); ND: (2) cpu() float32 [ -inf, 0.9163]- Returns:
 - the result 
NDArray 
 - 
log10
NDArray log10()Returns the base 10 logarithm of thisNDArrayelement-wise.Examples
jshell> NDArray array = manager.create(new float[] {1000f, 1f, 150f}); jshell> array.log10(); ND: (3) cpu() float32 [3. , 0. , 2.1761]- Returns:
 - the result 
NDArray 
 - 
log2
NDArray log2()Returns the base 2 logarithm of thisNDArrayelement-wise.Examples
jshell> NDArray array = manager.create(new float[] {8, 1f, 5f}); jshell> array.log2(); ND: (3) cpu() float32 [3. , 0. , 2.3219]- Returns:
 - the result 
NDArray 
 - 
sin
NDArray sin()Returns the trigonometric sine of thisNDArrayelement-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. ]- Returns:
 - the result 
NDArray 
 - 
cos
NDArray cos()Returns the trigonometric cosine of thisNDArrayelement-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],- Returns:
 - the result 
NDArray 
 - 
tan
NDArray tan()Returns the trigonometric tangent of thisNDArrayelement-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],- Returns:
 - the result 
NDArray 
 - 
asin
NDArray asin()Returns the inverse trigonometric sine of thisNDArrayelement-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. ]- Returns:
 - the result 
NDArray 
 - 
acos
NDArray acos()Returns the inverse trigonometric cosine of thisNDArrayelement-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]- Returns:
 - the result 
NDArray 
 - 
atan
NDArray atan()Returns the inverse trigonometric tangent of thisNDArrayelement-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]- Returns:
 - the result 
NDArray 
 - 
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]- Parameters:
 other- The otherNDArray- Returns:
 - the result 
NDArray 
 - 
sinh
NDArray sinh()Returns the hyperbolic sine of thisNDArrayelement-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]- Returns:
 - the result 
NDArray 
 - 
cosh
NDArray cosh()Returns the hyperbolic cosine of thisNDArrayelement-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 ]- Returns:
 - the result 
NDArray 
 - 
tanh
NDArray tanh()Returns the hyperbolic tangent of thisNDArrayelement-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]- Returns:
 - the result 
NDArray 
 - 
asinh
NDArray asinh()Returns the inverse hyperbolic sine of thisNDArrayelement-wise.Examples
jshell> NDArray array = manager.create(new double[] {Math.E, 10}); jshell> array.asinh(); ND: (2) cpu() float64 [1.7254, 2.9982]- Returns:
 - the result 
NDArray 
 - 
acosh
NDArray acosh()Returns the inverse hyperbolic cosine of thisNDArrayelement-wise.Examples
jshell> NDArray array = manager.create(new double[] {Math.E, 10}); jshell> array.acosh(); ND: (2) cpu() float64 [1.6575, 2.9932]- Returns:
 - the result 
NDArray 
 - 
atanh
NDArray atanh()Returns the inverse hyperbolic tangent of thisNDArrayelement-wise.Examples
jshell> NDArray array = manager.create(new double[] {0, -0.5}); jshell> array.atanh(); ND: (2) cpu() float64 [ 0. , -0.5493]- Returns:
 - the result 
NDArray 
 - 
toDegrees
NDArray toDegrees()Converts thisNDArrayfrom 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.]
- Returns:
 - the result 
NDArray 
 - 
toRadians
NDArray toRadians()Converts thisNDArrayfrom 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 ]
- Returns:
 - the result 
NDArray 
 - 
max
NDArray 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
- Returns:
 - the maximum of this 
NDArray 
 - 
max
Returns the maximum of thisNDArrayalong 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}); // Maximum along the first axis ND: (2) cpu() float32 [2., 3.] jshell> array.max(new int[]{1}); // Maximum along the second axis ND: (2) cpu() float32 [1., 3.]- Parameters:
 axes- the axes along which to operate- Returns:
 - the maximum of this 
NDArraywith the specified axes removed from the Shape containing the max - See Also:
 
 - 
max
Returns the maximum of thisNDArrayalong 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.], ]- Parameters:
 axes- the axes along which to operatekeepDims-trueto keep the specified axes as size 1 in the output array,falseto squeeze the values out of the output array.- Returns:
 - the maximum of this 
NDArray 
 - 
min
NDArray 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
- Returns:
 - the minimum of this 
NDArray 
 - 
min
Returns the minimum of thisNDArrayalong 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}); // Minimum along the first axis ND: (2) cpu() float32 [0., 1.] jshell> array.min(new int[]{1}); // Minimum along the second axis ND: (2) cpu() float32 [0., 2.]- Parameters:
 axes- the axes along which to operate- Returns:
 - the minimum of this 
NDArraywith the specified axes removed from the Shape containing the min - See Also:
 
 - 
min
Returns the minimum of thisNDArrayalong 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.], ]- Parameters:
 axes- the axes along which to operatekeepDims-trueto keep the specified axes as size 1 in the output array,falseto squeeze the values out of the output array- Returns:
 - the minimum of this 
NDArray 
 - 
sum
NDArray 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.- Returns:
 - the sum of this 
NDArray 
 - 
sum
Returns the sum of thisNDArrayalong 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}); ND: (2) cpu() float32 [0., 6.] jshell> array.sum(new int[] {1}); ND: (2) cpu() float32 [1., 5.]- Parameters:
 axes- the axes along which to operate- Returns:
 - the sum of this 
NDArraywith the specified axes removed from the Shape containing the sum - See Also:
 
 - 
sum
Returns the sum of thisNDArrayalong 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.], ]- Parameters:
 axes- the axes along which to operatekeepDims-trueto keep the specified axes as size 1 in the output array,falseto squeeze the values out of the output array- Returns:
 - the sum of this 
NDArray 
 - 
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 ...]- Parameters:
 axis- the axis along which to operate- Returns:
 - the cumulative product of this
 
 - 
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 ...]- Parameters:
 axis- the axis along which to operatedataType- the datatype of the output- Returns:
 - the cumulative product of this
 
 - 
prod
NDArray 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.- Returns:
 - the product of this 
NDArray 
 - 
prod
Returns the product of thisNDArrayelements 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}); ND: (2) cpu() float32 [3., 8.] jshell> array.prod(new int[] {1}); ND: (2) cpu() float32 [ 2., 12.]- Parameters:
 axes- the axes along which to operate- Returns:
 - the product of this 
NDArraywith the specified axes removed from the Shape containing the prod - See Also:
 
 - 
prod
Returns the product of thisNDArrayelements 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.], ]- Parameters:
 axes- the axes along which to operatekeepDims-trueto keep the specified axes as size 1 in the output array,falseto squeeze the values out of the output array- Returns:
 - the product of this 
NDArray 
 - 
mean
NDArray 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- Returns:
 - the average of this 
NDArray 
 - 
mean
Returns the average of thisNDArrayalong 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}); ND: (2) cpu() float32 [2., 3.] jshell> array.mean(new int[] {1}); ND: (2) cpu() float32 [1.5, 3.5]- Parameters:
 axes- the axes along which to operate- Returns:
 - the average of this 
NDArraywith the specified axes removed from the Shape containing the mean - See Also:
 
 - 
mean
Returns the average of thisNDArrayalong 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], ]- Parameters:
 axes- the axes along which to operatekeepDims-trueto keep the specified axes as size 1 in the output array,falseto squeeze the values out of the output array- Returns:
 - the average of this 
NDArray 
 - 
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(); ND: (2, 3) cpu() float32 [[0.2673, 0.5345, 0.8018], [0.4558, 0.5698, 0.6838], ]- Returns:
 - the normalized 
NDArray 
 - 
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); ND: (2, 3) cpu() float32 [[0.2673, 0.5345, 0.8018], [0.4558, 0.5698, 0.6838], ]- Parameters:
 exponent- the exponent value in the norm formulationdim- the dimension to reduce- Returns:
 - the normalized 
NDArray 
 - 
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], ]- Parameters:
 exponent- the exponent value in the norm formulationdim- the dimension to reduceeps- the small value to avoid division by zero- Returns:
 - the normalized 
NDArray 
 - 
rotate90
Rotates an array by 90 degrees in the plane specified by axes.Rotation direction is from the first towards the second axis.
- Parameters:
 times- Number of times the array is rotated by 90 degrees.axes- The array is rotated in the plane defined by the axes. Axes must be different.- Returns:
 - the rotated NDArray
 
 - 
trace
Returns the sum along diagonals of thisNDArray.If this
NDArrayis 2-D, the sum along its diagonal is returned. If theNDArrayhas 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. TheShapeof the resultingNDArrayis the same as that of a with axis1 and axis2 removed.Examples
jshell> NDArray array = manager.eye(3); jshell> array; ND: (3, 3) cpu() float32 [[1., 0., 0.], [0., 1., 0.], [0., 0., 1.], ] jshell> array.trace(); ND: () cpu() float32 3. 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(); ND: (2) cpu() float32 [6., 8.]
- Returns:
 - the sum along diagonals of this 
NDArray 
 - 
trace
Returns the sum along diagonals of thisNDArray.If this
NDArrayis 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 thisNDArrayhas 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. TheShapeof the resulting array is the same as thisNDArraywith axis1 and axis2 removed.Examples
jshell> NDArray array = manager.eye(3); jshell> array; ND: (3, 3) cpu() float32 [[1., 0., 0.], [0., 1., 0.], [0., 0., 1.], ] jshell> array.trace(1); ND: () cpu() float32 0. 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); ND: (2) cpu() float32 [2., 3.]
- Parameters:
 offset- offset of the diagonal from the main diagonal. Can be both positive and negative.- Returns:
 - the sum along diagonals of this 
NDArray 
 - 
trace
Returns the sum along diagonals of thisNDArray.If this
NDArrayis 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 thisNDArrayhas 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. TheShapeof the resulting array is the same as thisNDArraywith 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.]
- 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 thisNDArrayinto multiple subNDArrays given sections along first axis.Examples
jshell> NDArray array = manager.arange(9f); jshell> array.split(3).forEach(System.out::println); ND: (3) cpu() float32 [0., 1., 2.] ND: (3) cpu() float32 [3., 4., 5.] ND: (3) cpu() float32 [6., 7., 8.]
 - 
split
Splits thisNDArrayinto multiple sub-NDArrays given indices along first axis.Examples
jshell> NDArray array = manager.arange(8f); jshell> array.split(new int[] {3, 5, 6}).forEach(System.out::println); ND: (3) cpu() float32 [0., 1., 2.] ND: (2) cpu() float32 [3., 4.] ND: (1) cpu() float32 [5.] ND: (2) cpu() float32 [6., 7.] - 
split
Splits thisNDArrayinto multiple subNDArrays 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.], ]
- Parameters:
 sections- thisNDArraywill be divided into N (sections) equal arrays along axisaxis- the axis to split along- Returns:
 - an 
NDListwith numOutputsNDArrays withShape(this.shape.axis /= axis) - Throws:
 IllegalArgumentException- thrown if the numOutputs does not equally divide the given axis
 - 
split
Splits thisNDArrayinto multiple sub-NDArrays 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.], ]- Parameters:
 indices- the entries indicate where along axis thisNDArrayis split. If an index exceeds the dimension of thisNDArrayalong axis, an empty sub-array is returned correspondinglyaxis- the axis to split along- Returns:
 - an 
NDListwith numOutputsNDArrays withShape(this.shape.axis /= axis) 
 - 
flatten
NDArray flatten()Flattens thisNDArrayinto a 1-DNDArrayin row-major order.To flatten in column-major order, first transpose this
NDArrayExamples
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.]- Returns:
 - a 1-D 
NDArrayof equal size 
 - 
flatten
Flattens thisNDArrayinto 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.]]- Parameters:
 startDim- the first dim to flatten, inclusiveendDim- the last dim to flatten, inclusive- Returns:
 - a partially fallen 
NDArray 
 - 
fft
Computes the one-dimensional discrete Fourier Transform.- Parameters:
 length- Length of the transformed axis of the output.- Returns:
 - The truncated or zero-padded input, transformed along the axis indicated by axis, or the last one if axis is not specified.
 
 - 
fft
Computes the one-dimensional discrete Fourier Transform.- Parameters:
 length- Length of the transformed axis of the output.axis- Axis over which to compute the FFT.- Returns:
 - The truncated or zero-padded input, transformed along the axis indicated by axis, or the last one if axis is not specified.
 
 - 
ifft
Computes the one dimensional inverse discrete Fourier transform.- Parameters:
 length- Length of the transformed axis of the output.axis- Axis over which to compute the IFFT.- Returns:
 - The truncated or zero-padded input, transformed along the axis indicated by axis, or the last one if axis is not specified.
 
 - 
ifft
Computes the one dimensional inverse discrete Fourier transform.- Parameters:
 length- Length of the transformed axis of the output.- Returns:
 - The truncated or zero-padded input, transformed along the axis indicated by axis, or the last one if axis is not specified.
 
 - 
rfft
Computes the one dimensional Fourier transform of real-valued input.- Parameters:
 length- Length of the transformed axis of the output.- Returns:
 - The truncated or zero-padded input, transformed along the axis indicated by axis, or the last one if axis is not specified.
 
 - 
rfft
Computes the one dimensional Fourier transform of real-valued input.- Parameters:
 length- Length of the transformed axis of the output.axis- Axis over which to compute the FFT.- Returns:
 - The truncated or transformed along the axis indicated by axis, or the last one if axis is not specified.
 
 - 
irfft
Computes the one dimensional inverse Fourier transform of real-valued input.- Parameters:
 length- Length of the transformed axis of the output.axis- Axis over which to compute the IRFFT.- Returns:
 - The truncated or transformed along the axis indicated by axis, or the last one if axis is not specified.
 
 - 
irfft
Computes the one dimensional inverse Fourier transform of real-valued input.- Parameters:
 length- Length of the transformed axis of the output.- Returns:
 - The truncated or transformed along the axis indicated by axis, or the last one if axis is not specified.
 
 - 
stft
default NDArray stft(long nFft, long hopLength, boolean center, NDArray window, boolean returnComplex) Computes the Short Time Fourier Transform (STFT).- 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 HanningWindowreturnComplex- 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
 
 - 
stft
NDArray stft(long nFft, long hopLength, boolean center, NDArray window, boolean normalize, boolean returnComplex) Computes the Short Time Fourier Transform (STFT).- 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.- Parameters:
 sizes- Sizes of the transformed axes of the output. Will be zero-padded or trimmed to this size.axes- Axes over which to compute the 2D-FFT.- Returns:
 - The truncated or zero-padded input, transformed along the axes.
 
 - 
fft2
Computes the two-dimensional Discrete Fourier Transform along the last 2 axes.- Parameters:
 sizes- Sizes of the transformed axes of the output. Will be zero-padded or trimmed to this size.- Returns:
 - The truncated or zero-padded input, transformed along the last two axes
 
 - 
ifft2
Computes the two-dimensional inverse Discrete Fourier Transform.- Parameters:
 sizes- Sizes of the transformed axes of the output. Will be zero-padded or trimmed to this size.axes- Axes over which to compute the 2D-Inverse-FFT.- Returns:
 - The truncated or zero-padded input, transformed along the axes.
 
 - 
ifft2
Computes the two-dimensional inverse Discrete Fourier Transform along the last 2 axes.- Parameters:
 sizes- Sizes of the transformed axes of the output. Will be zero-padded or trimmed to this size.- Returns:
 - The truncated or zero-padded input, transformed along the axes.
 
 - 
pad
Pads thisNDArraywith 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)
- Parameters:
 padding- the padding shape, must be even- Returns:
 - a padded 
NDArray - Throws:
 IllegalArgumentException- thrown if the givenpaddingdoes not match the size of the current shape
 - 
reshape
Reshapes thisNDArrayto the givenShape.Examples
jshell> NDArray array = manager.arange(6f); jshell> array; ND: (6) cpu() float32 [0., 1., 2., 3., 4., 5.] jshell> array.reshape(2, 3); ND: (2, 3) cpu() float32 [[0., 1., 2.], [3., 4., 5.], ]
- Parameters:
 newShape- the long array to reshape into. Must have equal size to the current shape- Returns:
 - a reshaped 
NDArray - Throws:
 IllegalArgumentException- thrown if the givenShapedoes not match the size of the current shape
 - 
reshape
Reshapes thisNDArrayto 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.], ]
- Parameters:
 shape- theShapeto reshape into. Must have equal size to the current shape- Returns:
 - a reshaped 
NDArray - Throws:
 IllegalArgumentException- thrown if the givenShapedoes not match the size of the current shape
 - 
expandDims
Expands theShapeof aNDArray.Inserts a new axis that will appear at the axis position in the expanded
NDArrayshape.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.], ]- 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 all singleton dimensions from thisNDArrayShape.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(); ND: (3) cpu() float32 [0., 1., 2.]- Returns:
 - a result 
NDArrayof same size and data without singleton dimensions 
 - 
squeeze
Removes a singleton dimension at the given axis.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(0); ND: (3, 1) cpu() float32 [[0.], [1.], [2.], ] jshell> array.squeeze(2); ND: (1, 3) cpu() float32 [[0., 1., 2.], ]- Parameters:
 axis- the axis at which to remove the singleton dimension- Returns:
 - a result 
NDArrayof same size and data without the axis at part of the shape - Throws:
 IllegalArgumentException- thrown if the given axis is not a singleton dimension
 - 
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.]- Parameters:
 axes- the axes at which to remove the singleton dimensions- Returns:
 - a result 
NDArrayof same size and data without the axes at part of the shape - Throws:
 IllegalArgumentException- thrown if any of the given axes are not a singleton dimension
 - 
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]- 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 
NDListcontaining: 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. 
 - 
unique
Returns the unique elements of the input tensor. The output is flattened.- Parameters:
 sorted- 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 
NDListcontaining: 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. 
 - 
unique
Returns the unique elements of the input tensor. The output is flattened.- Returns:
 - An 
NDListcontaining: 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. 
 - 
stack
Joins aNDArrayalong the first axis.Examples
jshell> NDArray array1 = manager.create(new float[] {0f, 1f}); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> array1.stack(array2) ND: (2, 2) cpu() float32 [[0., 1.], [2., 3.], ]- Parameters:
 array- the inputNDArraywhich must have the sameShapeas thisNDArray- Returns:
 - the result 
NDArray. The stackedNDArrayhas one more dimension than the inputNDArray. 
 - 
stack
Joins aNDArrayalong a new axis.Examples
jshell> NDArray array1 = manager.create(new float[] {0f, 1f}); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> array1.stack(array2, 0); ND: (2, 2) cpu() float32 [[0., 1.], [2., 3.], ] jshell> array1.stack(array2, 1); ND: (2, 2) cpu() float32 [[0., 2.], [1., 3.], ]- Parameters:
 array- the inputNDArraywhich must have the sameShapeas thisNDArrayaxis- the axis in the resultNDArrayalong which the inputNDArrayare stacked- Returns:
 - the result 
NDArray. The stackedNDArrayhas one more dimension than the inputNDArray. 
 - 
concat
Joins aNDArrayalong the first axis.Examples
jshell> NDArray array1 = manager.create(new float[] {0f, 1f}); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> array1.concat(array2) ND: (4) cpu() float32 [0., 1., 2., 3.]- Parameters:
 array- aNDArraywhich have the sameShapeas thisNDArray, except in the dimension corresponding to axis- Returns:
 - the concatenated 
NDArray 
 - 
concat
Joins aNDArrayalong an existing axis.Examples
jshell> NDArray array1 = manager.create(new float[] {0f, 1f}); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> array1.concat(array2, 0); ND: (4) cpu() float32 [0., 1., 2., 3.]- Parameters:
 array- aNDArraywhich have the sameShapeas thisNDArray, except in the dimension corresponding to axisaxis- the axis along which thisNDArraywill be joined- Returns:
 - the concatenated 
NDArray 
 - 
logicalAnd
Returns the truth value of thisNDArrayAND the otherNDArrayelement-wise.The shapes of this
NDArrayand the otherNDArraymust 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]
- Parameters:
 other- the otherNDArrayto operate on- Returns:
 - the boolean 
NDArrayof the logical AND operation applied to the elements of thisNDArrayand the otherNDArray 
 - 
logicalOr
Computes the truth value of thisNDArrayOR the otherNDArrayelement-wise.The shapes of this
NDArrayand the otherNDArraymust 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]
- Parameters:
 other- the otherNDArrayto operate on- Returns:
 - the boolean 
NDArrayof the logical OR operation applied to the elements of thisNDArrayand the otherNDArray 
 - 
logicalXor
Computes the truth value of thisNDArrayXOR the otherNDArrayelement-wise.The shapes of this
NDArrayand the otherNDArraymust 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]
- Parameters:
 other- the otherNDArrayto operate on- Returns:
 - the boolean 
NDArrayof the logical XOR operation applied to the elements of thisNDArrayand the otherNDArray 
 - 
logicalNot
NDArray logicalNot()Computes the truth value of NOT thisNDArrayelement-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]
- Returns:
 - the boolean 
NDArray 
 - 
argSort
Returns the indices that would sort thisNDArray.Perform an indirect sort along the given axis. It returns a
NDArrayof indices of the sameShapeas thisNDArray.Examples
jshell> NDArray array = manager.create(new float[] {3f, 1f, 2f}); jshell> array.argSort(); ND: (3) cpu() int64 [ 1, 2, 0] jshell> array = manager.create(new float[] {0f, 3f, 2f, 2f}, new Shape(2, 2)); jshell> array.argSort(); ND: (2, 2) cpu() int64 [[ 0, 1], [ 0, 1], ]- Returns:
 - a 
NDArrayof indices corresponding to elements in thisNDArrayon the axis, the output DataType is alwaysDataType.INT64 - See Also:
 
 - 
argSort
Returns the indices that would sort thisNDArraygiven the axis.Perform an indirect sort along the given axis. It returns a
NDArrayof indices of the sameShapeas thisNDArray.Examples
jshell> NDArray array = manager.create(new float[] {0f, 3f, 2f, 2f}, new Shape(2, 2)); jshell> array.argSort(0); ND: (2, 2) cpu() int64 [[ 0, 1], [ 1, 0], ] jshell> array.argSort(1); ND: (2, 2) cpu() int64 [[ 0, 1], [ 0, 1], ]- Parameters:
 axis- the axis to sort along- Returns:
 - a 
NDArrayof indices corresponding to elements in thisNDArrayon the axis, the output DataType is alwaysDataType.INT64 - See Also:
 
 - 
argSort
Returns the indices that would sort thisNDArraygiven the axis.Perform an indirect sort along the given axis. It returns a
NDArrayof indices of the sameShapeas 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], ]- Parameters:
 axis- the axis to sort alongascending- whether to sort ascending- Returns:
 - a 
NDArrayof indices corresponding to elements in thisNDArrayon the axis, the output DataType is alwaysDataType.INT64 
 - 
sort
NDArray 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.], ]- Returns:
 - the sorted 
NDArray 
 - 
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.], ]- Parameters:
 axis- the axis to sort along- Returns:
 - the sorted 
NDArray 
 - 
softmax
Applies the softmax function along the given axis.- Parameters:
 axis- the axis along which to apply- Returns:
 - the result 
NDArray - See Also:
 
 - 
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.
- Parameters:
 axis- the axis along which to apply- Returns:
 - the result 
NDArray 
 - 
cumSum
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.]- Returns:
 - the cumulative sum of the elements in the flattened 
NDArray 
 - 
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.], ]- Parameters:
 axis- the axis along which the cumulative sum is computed- Returns:
 - the cumulative sum along the specified axis
 
 - 
diagonal
NDArray diagonal()Return specified diagonals.Examples
jshell> NDArray array = manager.arange(9.0f).reshape(3, 3); jshell> array.diagonal(); ND: (3) cpu() float32 [0., 4., 8.]
- Returns:
 - specified diagonals
 
 - 
diagonal
Return specified diagonals.Examples
jshell> NDArray array = manager.arange(9.0f).reshape(3, 3); jshell> array.diagonal(1); ND: (2) cpu() float32 [1., 5.] jshell> array.diagonal(-1); ND: (2) cpu() float32 [3., 7.]
- Parameters:
 offset- Offset of the diagonal from the main diagonal. Can be positive or negative.- Returns:
 - specified diagonals
 
 - 
diagonal
Return specified diagonals.Examples
jshell> NDArray array = manager.arange(27f).reshape(3, 3, 3); jshell> array.diagonal(0, 1, 2); ND: (3, 3) cpu() float32 [[ 0., 4., 8.], [ 9., 13., 17.], [18., 22., 26.], ]
- Parameters:
 offset- Offset of the diagonal from the main diagonal. Can be positive or negative.axis1- Axis to be used as the first axis of the 2-D sub-arrays from which the diagonals should be taken.axis2- Axis to be used as the second axis of the 2-D sub-arrays from which the diagonals should be taken.- Returns:
 - specified diagonals
 
 - 
intern
Replace the handle of the NDArray with the other. The NDArray used for replacement will be killed.Please use with caution, this method will make the input argument unusable.
- Parameters:
 replaced- the handle provider that will be killed
 - 
isInfinite
NDArray isInfinite()Returns the booleanNDArraywith valuetruewhere thisNDArray's entries are infinite, orfalsewhere they are not infinite.- Returns:
 - the boolean 
NDArraywith valuetrueif thisNDArray's entries are infinite 
 - 
inverse
NDArray inverse()Computes the inverse of squareNDArrayif it exists.- Returns:
 - the inverse of square 
NDArray. 
 - 
isNaN
NDArray isNaN()Returns the booleanNDArraywith valuetruewhere thisNDArray's entries are NaN, orfalsewhere 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]- Returns:
 - the boolean 
NDArraywith valuetrueif thisNDArray'sNDArrayare NaN 
 - 
tile
Constructs aNDArrayby repeating thisNDArraythe 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.]- Parameters:
 repeats- the number of times to repeat for each dimension- Returns:
 - a NDArray that has been tiled
 
 - 
tile
Constructs aNDArrayby repeating thisNDArraythe 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.], ]- Parameters:
 axis- the axis to repeatrepeats- the number of times to repeat for each axis- Returns:
 - a 
NDArraythat has been tiled - Throws:
 IllegalArgumentException- thrown for invalid axis
 - 
tile
Constructs aNDArrayby repeating thisNDArraythe 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.], ]- Parameters:
 repeats- the number of times to repeat along each axis- Returns:
 - a 
NDArraythat has been tiled 
 - 
tile
Constructs aNDArrayby repeating thisNDArraythe number of times to match the desired shape.If the desired
Shapehas 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.]- Parameters:
 desiredShape- theShapethat should be converted to- Returns:
 - a 
NDArraythat has been tiled 
 - 
repeat
Repeats element of thisNDArraythe 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.]- Parameters:
 repeats- the number of times to repeat for each axis- Returns:
 - an 
NDArraythat has been repeated 
 - 
repeat
Repeats element of thisNDArraythe 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.]]- Parameters:
 axis- the axis to repeatrepeats- the number of times to repeat for each axis- Returns:
 - an 
NDArraythat has been repeated - Throws:
 IllegalArgumentException- thrown for invalid axis
 - 
repeat
Repeats element of thisNDArraythe 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.]- Parameters:
 repeats- the number of times to repeat along each axis- Returns:
 - a 
NDArraythat has been repeated 
 - 
repeat
Repeats element of thisNDArrayto match the desired shape.If the desired
Shapehas 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.], ]- Parameters:
 desiredShape- theShapethat should be converted to- Returns:
 - an 
NDArraythat has been repeated 
 - 
dot
Dot product of thisNDArrayand the otherNDArray.- If both this 
NDArrayand the otherNDArrayare 1-DNDArrays, it is inner product of vectors (without complex conjugation). - If both this 
NDArrayand the otherNDArrayare 2-DNDArrays, it is matrix multiplication. - If either this 
NDArrayor the otherNDArrayis 0-DNDArray(scalar), it is equivalent to mul. - If this 
NDArrayis N-DNDArrayand the otherNDArrayis 1-DNDArray, it is a sum product over the last axis of those. - If this 
NDArrayis N-DNDArrayand the otherNDArrayis M-DNDArray(where M>=2), it is a sum product over the last axis of thisNDArrayand 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.], ], ]- Parameters:
 other- the otherNDArrayto perform dot product with- Returns:
 - the result 
NDArray 
 - If both this 
 - 
matMul
Product matrix of thisNDArrayand the otherNDArray.The behavior depends on the arguments in the following way.
- If both this 
NDArrayand the otherNDArrayare 2-DNDArrays, they are multiplied like conventional matrices - If either this 
NDArrayor the otherNDArrayis N-DNDArray, N > 2 , it is treated as a stack of matrices residing in the last two indexes and broadcast accordingly. - If this 
NDArrayis 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 
NDArrayis 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.- Parameters:
 other- the otherNDArrayto perform matrix product with- Returns:
 - the result 
NDArray 
 - If both this 
 - 
batchMatMul
Batch product matrix of thisNDArrayand the otherNDArray.- Parameters:
 other- the otherNDArrayto perform matrix product with- Returns:
 - the result 
NDArray 
 - 
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.]
- Parameters:
 min- the minimum valuemax- the maximum value- Returns:
 - an 
NDArraywith the elements of thisNDArray, but where values < min are replaced with min, and those > max with max 
 - 
swapAxes
Interchanges two axes of thisNDArray.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f ,3f}, new Shape(1, 3)); jshell> array; ND: (1, 3) cpu() float32 [[1., 2., 3.], ] jshell> array.swapAxes(0, 1); ND: (3, 1) cpu() float32 [[1.], [2.], [3.], ]- Parameters:
 axis1- the first axisaxis2- the second axis- Returns:
 - the swapped axes 
NDArray 
 - 
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.
- Parameters:
 axes- the axes to flip on- Returns:
 - the newly flipped array
 
 - 
transpose
NDArray transpose()Returns thisNDArraywith 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.], ]- Returns:
 - the newly permuted array
 
 - 
transpose
Returns thisNDArraywith 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.], ], ]- Parameters:
 axes- the axes to swap to- Returns:
 - the transposed 
NDArray - Throws:
 IllegalArgumentException- thrown when passing a axis that is greater than the actual number of dimensions
 - 
broadcast
Broadcasts thisNDArrayto 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.], ], ]- Parameters:
 shape- the newShapeof thisNDArray- Returns:
 - the broadcasted 
NDArray 
 - 
broadcast
Broadcasts thisNDArrayto 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(2, 2, 2); ND: (2, 2, 2) cpu() float32 [[[1., 2.], [3., 4.], ], [[1., 2.], [3., 4.], ], ]- Parameters:
 shape- the newShapeof thisNDArray- Returns:
 - the broadcasted 
NDArray 
 - 
argMax
NDArray 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.
- Returns:
 - a 
NDArraycontaining indices 
 - 
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]
- Parameters:
 axis- the axis along which to find maximum values- Returns:
 - a 
NDArraycontaining indices 
 - 
topK
Returns (values, indices) of the top k values along given axis.- Parameters:
 k- the number of returned valuesaxis- the axis to sort along, whose shape is reduced to k- Returns:
 - a 
NDListcontaining (values, indices) 
 - 
topK
Returns (values, indices) of the top k values along given axis.- Parameters:
 k- the number of returned valuesaxis- the axis to sort along, whose shape is reduced to klargest- whether the largest or the smallestsorted- whether the sorted or not- Returns:
 - a 
NDListcontaining (values, indices) 
 - 
argMin
NDArray 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.
- Returns:
 - a 
NDArraycontaining indices 
 - 
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]
- Parameters:
 axis- the axis along which to find minimum values- Returns:
 - a 
NDArraycontaining indices 
 - 
percentile
Returns percentile for thisNDArray.- Parameters:
 percentile- the target percentile in range of 0..100- Returns:
 - the result 
NDArray 
 - 
percentile
Returns median along given dimension(s).- Parameters:
 percentile- the target percentile in range of 0..100axes- the dimension to calculate percentile for- Returns:
 - the result 
NDArrayNDArray 
 - 
median
NDArray median()Returns median value for thisNDArray.- Returns:
 - the median 
NDArray 
 - 
median
Returns median value along given axes.- Parameters:
 axes- the axes along which to perform the median operation- Returns:
 - the median 
NDArrayalong the specified axes 
 - 
toDense
NDArray toDense()Returns a dense representation of the sparseNDArray.- Returns:
 - the result 
NDArray 
 - 
toSparse
Returns a sparse representation ofNDArray.- Parameters:
 fmt- theSparseFormatof thisNDArray- Returns:
 - the result 
NDArray 
 - 
nonzero
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
NDArraywith 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], ]- Returns:
 - the indices of the elements that are non-zero
 
 - 
isEmpty
default boolean isEmpty()Returnstrueif thisNDArrayis special case: no-valueNDArray.Examples
jshell> NDArray array = manager.create(new Shape(2, 0, 1)); jshell> array; ND: (2, 0, 1) cpu() float32 [] jshell> array.isEmpty(); true
- Returns:
 trueif this NDArray is empty
 - 
all
Returnstrueif all elements within thisNDArrayare non-zero ortrue.Examples
jshell> NDArray array = manager.create(new boolean[] {true, false, true, true}, new Shape(2, 2)); jshell> array.all(); ND: () cpu() boolean false jshell> NDArray array = manager.create(new float[] {-1f, 4f, 5f}); jshell> array.all(); // all elements are non-zero ND: () cpu() boolean true- Returns:
 trueif all elements within thisNDArrayare non-zero ortrue
 - 
any
Returnstrueif any of the elements within thisNDArrayare non-zero ortrue.Examples
jshell> NDArray array = manager.create(new boolean[] {true, false, true, true}, new Shape(2, 2)); jshell> array.any(); ND: () cpu() boolean true jshell> NDArray array = manager.create(new float[] {-1, 0, 5}); jshell> array.any() // all elements are non-zero ND: () cpu() boolean true- Returns:
 trueif any of the elements within thisNDArrayare non-zero ortrue
 - 
none
Returnstrueif none of the elements within thisNDArrayare non-zero ortrue.Examples
jshell> NDArray array = manager.create(new boolean[] {false, false}); jshell> array.none(); ND: () cpu() boolean true jshell> NDArray array = manager.create(new float[] {-1f, 0f, 5f}); jshell> array.none() // all elements are non-zero ND: () cpu() boolean false- Returns:
 trueif none of the elements within thisNDArrayare non-zero ortrue
 - 
countNonzero
Counts the number of non-zero values in thisNDArray.Examples
jshell> NDArray array = manager.create(new float[] {0f, 0f, 1f, 2f, 7f, 0f}, new Shape(2, 3)); jshell> array.countNonzero() ND: () cpu() int64 3- Returns:
 - the number of non-zero values in this 
NDArray 
 - 
countNonzero
Counts the number of non-zero values in thisNDArrayalong a given axis.Examples
jshell> NDArray array = manager.create(new float[] {0f, 0f, 1f, 2f, 7f, 0f}, new Shape(2, 3)); jshell> array; ND: (2, 3) cpu() float32 [[0., 0., 1.], [2., 7., 0.], ] jshell> array.countNonzero(0); ND: (3) cpu() int64 [ 1, 1, 1] jshell> array.countNonzero(1); ND: (2) cpu() int64 [ 1, 2]- Parameters:
 axis- the axis to operate on- Returns:
 - the number of non-zero values in this 
NDArrayalong a given axis 
 - 
erfinv
NDArray 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]- Returns:
 - The inverse of gauss error of the 
NDArray, element-wise 
 - 
erf
NDArray 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]- Returns:
 - The gauss error of the 
NDArray, element-wise 
 - 
getResourceNDArrays
- Specified by:
 getResourceNDArraysin interfaceNDResource- Returns:
 - the 
NDArrayorNDArrays contained within this resource 
 - 
getNDArrayInternal
ai.djl.ndarray.internal.NDArrayEx getNDArrayInternal()Returns an internal representative of NativeNDArray.This method should only be used by Engine provider
- Returns:
 - an internal representative of Native 
NDArray 
 - 
isReleased
boolean isReleased()Returnstrueif this NDArray has been released.- Returns:
 trueif this NDArray has been released
 - 
toDebugString
Runs the debug string representation of thisNDArray.- Returns:
 - the debug string representation of this 
NDArray 
 - 
toDebugString
Runs the debug string representation of thisNDArray.- Parameters:
 withContent- true to show the content of NDArray- Returns:
 - the debug string representation of this 
NDArray 
 - 
toDebugString
default String toDebugString(int maxSize, int maxDepth, int maxRows, int maxColumns, boolean withContent) Runs the debug string representation of thisNDArray.- Parameters:
 maxSize- the maximum elements to print outmaxDepth- the maximum depth to print outmaxRows- the maximum rows to print outmaxColumns- the maximum columns to print outwithContent- true to show the content of NDArray- Returns:
 - the debug string representation of this 
NDArray 
 - 
close
void close()- Specified by:
 closein interfaceAutoCloseable- Specified by:
 closein interfaceNDResource
 - 
norm
Returns the norm of thisNDArray.Examples
jshell> NDArray array = manager.create(new float[] {-3f, -4f}); jshell> array.norm(); ND: () cpu() float32 5. jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array.norm(); ND: () cpu() float32 5.4472- Returns:
 - the norm of this 
NDArray 
 - 
norm
Returns the norm of thisNDArray.Examples
jshell> NDArray array = manager.create(new float[] {-3f, -4f}); jshell> array.norm(new int[] {0}); ND: () cpu() float32 5. jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array.norm(new int[] {0}); ND: (2) cpu() float32 [3.1623, 4.4721]- Parameters:
 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.- Returns:
 - the norm of this 
NDArray 
 - 
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], ]- Parameters:
 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 
 - 
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(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(new int[] {0}, false); ND: (2) cpu() float32 [3.1623, 4.4721]- Parameters:
 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 
 - 
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]- 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 1, while all other locations take value 0.
 - If the input 
NDArrayis rank N, the output will have rank N+1. The new axis is appended at the end. - If 
NDArrayis a scalar the output shape will be a vector of length depth. - If 
NDArrayis a vector of length features, the output shape will be features x depth. - If 
NDArrayis 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); ND: (4, 3) cpu() float32 [[0., 1., 0.], [1., 0., 0.], [0., 0., 1.], [1., 0., 0.], ] jshell> NDArray array = manager.create(new int[][] {{1, 0}, {1, 0}, {2, 0}}); jshell> array.oneHot(3); ND: (3, 2, 3) cpu() float32 [[[0., 1., 0.], [1., 0., 0.], ], [[0., 1., 0.], [1., 0., 0.], ], [[0., 0., 1.], [1., 0., 0.], ], ]- Parameters:
 depth- Depth of the one hot dimension.- Returns:
 - one-hot encoding of this 
NDArray - See Also:
 
 - 
oneHot
Returns a one-hotNDArray.- The locations represented by indices take value 1, while all other locations take value 0.
 - If the input 
NDArrayis rank N, the output will have rank N+1. The new axis is appended at the end. - If 
NDArrayis a scalar the output shape will be a vector of length depth. - If 
NDArrayis a vector of length features, the output shape will be features x depth. - If 
NDArrayis 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); ND: (4, 3) cpu() float32 [[0., 1., 0.], [1., 0., 0.], [0., 0., 1.], [1., 0., 0.], ] jshell> NDArray array = manager.create(new int[][] {{1, 0}, {1, 0}, {2, 0}}); jshell> array.oneHot(3); ND: (3, 2, 3) cpu() float32 [[[0., 1., 0.], [1., 0., 0.], ], [[0., 1., 0.], [1., 0., 0.], ], [[0., 0., 1.], [1., 0., 0.], ], ]- Parameters:
 depth- Depth of the one hot dimension.dataType- dataType of the output.- Returns:
 - one-hot encoding of this 
NDArray - See Also:
 
 - 
oneHot
Returns a one-hotNDArray.- The locations represented by indices take value onValue, while all other locations take value offValue.
 - If the input 
NDArrayis rank N, the output will have rank N+1. The new axis is appended at the end. - If 
NDArrayis a scalar the output shape will be a vector of length depth. - If 
NDArrayis a vector of length features, the output shape will be features x depth. - If 
NDArrayis 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], ]- 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 thisNDArrayand 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.], ], ]
- Parameters:
 other- the otherNDArrayto perform batch dot product with- Returns:
 - the result 
NDArray 
 - 
complex
NDArray complex()Convert a general NDArray to its complex math format.example: [10f, 12f] float32 -> [10+12j] in complex64
- Returns:
 - the complex NDArray
 
 - 
real
NDArray real()Convert a complex NDArray to its real math format. example: [10+12j] in complex64 -> [10f, 12f] float32- Returns:
 - tje real NDArray
 
 - 
conj
NDArray conj()Conjugate complex array.- Returns:
 - Returns a view of input with a flipped conjugate bit. If input has a non-complex type, this function just returns input.
 
 - 
diff
Calculates the n-th order discrete difference along a given dimension.- Parameters:
 n- the number of times to apply the differencedim- the dimension to perform the difference along- Returns:
 - a new 
NDArraycontaining the differenced values 
 
 -