Interface NDArray
-
- All Superinterfaces:
java.lang.AutoCloseable
,BytesSupplier
,NDResource
- All Known Subinterfaces:
LazyNDArray
,SparseNDArray
- All Known Implementing Classes:
NDArrayAdapter
public interface NDArray extends NDResource, BytesSupplier
An interface representing an n-dimensional array.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
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description NDArray
abs()
Returns the absolute value of thisNDArray
element-wise.NDArray
acos()
Returns the inverse trigonometric cosine of thisNDArray
element-wise.NDArray
acosh()
Returns the inverse hyperbolic cosine of thisNDArray
element-wise.NDArray
add(NDArray other)
Adds otherNDArray
s to thisNDArray
element-wise.NDArray
add(java.lang.Number n)
Adds a number to thisNDArray
element-wise.NDArray
addi(NDArray other)
Adds otherNDArray
s to thisNDArray
element-wise in place.NDArray
addi(java.lang.Number n)
Adds a number to thisNDArray
element-wise in place.default NDArray
all()
Returnstrue
if all elements within thisNDArray
are non-zero ortrue
.default boolean
allClose(NDArray other)
Returnstrue
if twoNDArray
s are element-wise equal within a tolerance.default boolean
allClose(NDArray other, double rtol, double atol, boolean equalNan)
Returnstrue
if twoNDArray
are element-wise equal within a tolerance.default NDArray
any()
Returnstrue
if any of the elements within thisNDArray
are non-zero ortrue
.NDArray
argMax()
Returns the indices of the maximum values into the flattenedNDArray
.NDArray
argMax(int axis)
Returns the indices of the maximum values along given axis.NDArray
argMin()
Returns the indices of the minimum values into the flattenedNDArray
.NDArray
argMin(int axis)
Returns the indices of the minimum values along given axis.default NDArray
argSort()
Returns the indices that would sort thisNDArray
.default NDArray
argSort(int axis)
Returns the indices that would sort thisNDArray
given the axis.NDArray
argSort(int axis, boolean ascending)
Returns the indices that would sort thisNDArray
given the axis.NDArray
asin()
Returns the inverse trigonometric sine of thisNDArray
element-wise.NDArray
asinh()
Returns the inverse hyperbolic sine of thisNDArray
element-wise.NDArray
atan()
Returns the inverse trigonometric tangent of thisNDArray
element-wise.NDArray
atanh()
Returns the inverse hyperbolic tangent of thisNDArray
element-wise.NDArray
batchDot(NDArray other)
Batchwise product of thisNDArray
and the otherNDArray
.default NDArray
booleanMask(NDArray index)
Returns portion of thisNDArray
given the index booleanNDArray
along first axis.NDArray
booleanMask(NDArray index, int axis)
Returns portion of thisNDArray
given the index booleanNDArray
along given axis.default NDArray
broadcast(long... shape)
Broadcasts thisNDArray
to be the given shape.NDArray
broadcast(Shape shape)
Broadcasts thisNDArray
to be the given shape.NDArray
cbrt()
Returns the cube-root of thisNDArray
element-wise.NDArray
ceil()
Returns the ceiling of thisNDArray
element-wise.NDArray
clip(java.lang.Number min, java.lang.Number max)
Clips (limit) the values in thisNDArray
.void
close()
default NDArray
concat(NDArray array)
Joins aNDArray
along the first axis.default NDArray
concat(NDArray array, int axis)
Joins aNDArray
along an existing axis.boolean
contentEquals(NDArray other)
boolean
contentEquals(java.lang.Number number)
Returnstrue
if all elements in thisNDArray
are equal to theNumber
.void
copyTo(NDArray array)
Deep-copies the currentNDArray
to the one passed in.NDArray
cos()
Returns the trigonometric cosine of thisNDArray
element-wise.NDArray
cosh()
Returns the hyperbolic cosine of thisNDArray
element-wise.default NDArray
countNonzero()
Counts the number of non-zero values in thisNDArray
.default NDArray
countNonzero(int axis)
Counts the number of non-zero values in thisNDArray
along a given axis.NDArray
cumSum()
Returns the cumulative sum of the elements in the flattenedNDArray
.NDArray
cumSum(int axis)
Return the cumulative sum of the elements along a given axis.static NDArray
decode(NDManager manager, byte[] byteArray)
DecodesNDArray
from bytes.NDArray
div(NDArray other)
Divides thisNDArray
by the otherNDArray
element-wise.NDArray
div(java.lang.Number n)
Divides thisNDArray
by a number element-wise.NDArray
divi(NDArray other)
Divides thisNDArray
by the otherNDArray
element-wise in place.NDArray
divi(java.lang.Number n)
Divides thisNDArray
by a number element-wise in place.NDArray
dot(NDArray other)
Dot product of thisNDArray
and the otherNDArray
.default NDArray
duplicate()
Returns a copy of thisNDArray
.default byte[]
encode()
EncodesNDArray
to byte array.NDArray
eq(NDArray other)
Returns the booleanNDArray
for element-wise "Equals" comparison.NDArray
eq(java.lang.Number n)
Returns the booleanNDArray
for element-wise "Equals" comparison.NDArray
erfinv()
Returns element-wise inverse gauss error function of theNDArray
.NDArray
exp()
Returns the exponential value of thisNDArray
element-wise.NDArray
expandDims(int axis)
Expands theShape
of aNDArray
.NDArray
flatten()
Flattens thisNDArray
into a 1-DNDArray
in row-major order.NDArray
flip(int... axes)
Returns the reverse order of elements in an array along the given axis.NDArray
floor()
Returns the floor of thisNDArray
element-wise.NDArray
gather(NDArray index, int axis)
Returns a partialNDArray
pointed by the indexed array.default NDArray
get(long... indices)
Returns a partialNDArray
.default NDArray
get(NDIndex index)
Returns a partialNDArray
.default NDArray
get(NDArray index)
Returns a partialNDArray
.default NDArray
get(java.lang.String indices, java.lang.Object... args)
Returns a partialNDArray
.default boolean
getBoolean(long... indices)
Returns a boolean element from thisNDArray
.default byte
getByte(long... indices)
Returns an byte element from thisNDArray
.DataType
getDataType()
Returns theDataType
of thisNDArray
.Device
getDevice()
Returns theDevice
of thisNDArray
.default double
getDouble(long... indices)
Returns a double element from thisNDArray
.default float
getFloat(long... indices)
Returns a float element from thisNDArray
.NDArray
getGradient()
Returns the gradientNDArray
attached to thisNDArray
.default int
getInt(long... indices)
Returns an int element from thisNDArray
.default long
getLong(long... indices)
Returns a long element from thisNDArray
.java.lang.String
getName()
Returns the name of thisNDArray
.ai.djl.ndarray.internal.NDArrayEx
getNDArrayInternal()
Returns an internal representative of NativeNDArray
.default NDArray
getScalar(long... indices)
Returns a scalarNDArray
corresponding to a single element.Shape
getShape()
Returns theShape
of thisNDArray
.SparseFormat
getSparseFormat()
Returns theSparseFormat
of thisNDArray
.java.lang.String
getUid()
Returns unique identifier of thisNDArray
.default int
getUint8(long... indices)
Returns an integer element from thisNDArray
that represent unsigned integer with 8 bits.NDArray
gt(NDArray other)
Returns the booleanNDArray
for element-wise "Greater Than" comparison.NDArray
gt(java.lang.Number n)
Returns the booleanNDArray
for element-wise "Greater" comparison.NDArray
gte(NDArray other)
Returns the booleanNDArray
for element-wise "Greater or equals" comparison.NDArray
gte(java.lang.Number n)
Returns the booleanNDArray
for element-wise "Greater or equals" comparison.boolean
hasGradient()
Returns true if the gradient calculation is required for thisNDArray
.void
intern(NDArray replaced)
Replace the handle of the NDArray with the other.default boolean
isEmpty()
Returnstrue
if thisNDArray
is special case: no-valueNDArray
.NDArray
isInfinite()
Returns the booleanNDArray
with valuetrue
where thisNDArray
's entries are infinite, orfalse
where they are not infinite.NDArray
isNaN()
Returns the booleanNDArray
with valuetrue
where thisNDArray
's entries are NaN, orfalse
where they are not NaN.default boolean
isScalar()
default boolean
isSparse()
default NDArray
like()
Returns an uninitializedNDArray
with the sameShape
,DataType
andSparseFormat
as the inputNDArray
.NDArray
log()
Returns the natural logarithmic value of thisNDArray
element-wise.NDArray
log10()
Returns the base 10 logarithm of thisNDArray
element-wise.NDArray
log2()
Returns the base 2 logarithm of thisNDArray
element-wise.NDArray
logicalAnd(NDArray other)
Returns the truth value of thisNDArray
AND the otherNDArray
element-wise.NDArray
logicalNot()
Computes the truth value of NOT thisNDArray
element-wise.NDArray
logicalOr(NDArray other)
Computes the truth value of thisNDArray
OR the otherNDArray
element-wise.NDArray
logicalXor(NDArray other)
Computes the truth value of thisNDArray
XOR the otherNDArray
element-wise.NDArray
logSoftmax(int axis)
Applies the softmax function followed by a logarithm.NDArray
lt(NDArray other)
Returns the booleanNDArray
for element-wise "Less" comparison.NDArray
lt(java.lang.Number n)
Returns the booleanNDArray
for element-wise "Less" comparison.NDArray
lte(NDArray other)
Returns the booleanNDArray
for element-wise "Less or equals" comparison.NDArray
lte(java.lang.Number n)
Returns the booleanNDArray
for element-wise "Less or equals" comparison.NDArray
matMul(NDArray other)
Product matrix of thisNDArray
and the otherNDArray
.NDArray
max()
Returns the maximum of thisNDArray
.default NDArray
max(int[] axes)
Returns the maximum of thisNDArray
along given axes.NDArray
max(int[] axes, boolean keepDims)
Returns the maximum of thisNDArray
along given axes.NDArray
maximum(NDArray other)
Returns the maximum of thisNDArray
and the otherNDArray
element-wise.NDArray
maximum(java.lang.Number n)
Returns the maximum of thisNDArray
and a number element-wise.NDArray
mean()
Returns the average of thisNDArray
.default NDArray
mean(int[] axes)
Returns the average of thisNDArray
along given axes.NDArray
mean(int[] axes, boolean keepDims)
Returns the average of thisNDArray
along given axes.NDArray
median()
Returns median value for thisNDArray
.NDArray
median(int[] axes)
Returns median value along given axes.NDArray
min()
Returns the minimum of thisNDArray
.default NDArray
min(int[] axes)
Returns the minimum of thisNDArray
along given axes.NDArray
min(int[] axes, boolean keepDims)
Returns the minimum of thisNDArray
along given axes.NDArray
minimum(NDArray other)
Returns the minimum of thisNDArray
and the otherNDArray
element-wise.NDArray
minimum(java.lang.Number n)
Returns the minimum of thisNDArray
and a number element-wise.NDArray
mod(NDArray other)
Returns element-wise remainder of division.NDArray
mod(java.lang.Number n)
Returns element-wise remainder of division.NDArray
modi(NDArray other)
Returns in place element-wise remainder of division in place.NDArray
modi(java.lang.Number n)
Returns element-wise remainder of division in place.NDArray
mul(NDArray other)
Multiplies thisNDArray
by otherNDArray
s element-wise.NDArray
mul(java.lang.Number n)
Multiplies thisNDArray
by a number element-wise.NDArray
muli(NDArray other)
Multiplies thisNDArray
by otherNDArray
element-wise in place.NDArray
muli(java.lang.Number n)
Multiplies thisNDArray
by a number element-wise in place.NDArray
neg()
Returns the numerical negativeNDArray
element-wise.NDArray
negi()
Returns the numerical negativeNDArray
element-wise in place.NDArray
neq(NDArray other)
Returns the booleanNDArray
for element-wise "Not equals" comparison.NDArray
neq(java.lang.Number n)
Returns the booleanNDArray
for element-wise "Not equals" comparison.default NDArray
none()
Returnstrue
if none of the elements within thisNDArray
are non-zero ortrue
.NDArray
nonzero()
Returns the indices of elements that are non-zero.default NDArray
norm()
Returns the norm of thisNDArray
.NDArray
norm(boolean keepDims)
Returns the norm of thisNDArray
.default NDArray
norm(int[] axes)
Returns the norm of thisNDArray
.default NDArray
norm(int[] axes, boolean keepDims)
Returns the norm of thisNDArray
.NDArray
norm(int ord, int[] axes, boolean keepDims)
Returns the norm of thisNDArray
.default NDArray
oneHot(int depth)
Returns a one-hotNDArray
.NDArray
oneHot(int depth, float onValue, float offValue, DataType dataType)
Returns a one-hotNDArray
.default NDArray
oneHot(int depth, DataType dataType)
Returns a one-hotNDArray
.default NDArray
onesLike()
NDArray
percentile(java.lang.Number percentile)
Returns percentile for thisNDArray
.NDArray
percentile(java.lang.Number percentile, int[] axes)
Returns median along given dimension(s).NDArray
pow(NDArray other)
Takes the power of thisNDArray
with the otherNDArray
element-wise.NDArray
pow(java.lang.Number n)
Takes the power of thisNDArray
with a number element-wise.NDArray
powi(NDArray other)
Takes the power of thisNDArray
with the otherNDArray
element-wise in place.NDArray
powi(java.lang.Number n)
Takes the power of thisNDArray
with a number element-wise in place.NDArray
prod()
Returns the product of thisNDArray
.default NDArray
prod(int[] axes)
Returns the product of thisNDArray
elements over the given axes.NDArray
prod(int[] axes, boolean keepDims)
Returns the product of thisNDArray
elements over the given axes.NDArray
repeat(int axis, long repeats)
Repeats element of thisNDArray
the number of times given repeats along given axis.NDArray
repeat(long repeats)
Repeats element of thisNDArray
the number of times given repeats.NDArray
repeat(long[] repeats)
Repeats element of thisNDArray
the number of times given repeats along each axis.NDArray
repeat(Shape desiredShape)
Repeats element of thisNDArray
to match the desired shape.default NDArray
reshape(long... newShape)
Reshapes thisNDArray
to the givenShape
.NDArray
reshape(Shape shape)
Reshapes thisNDArray
to the givenShape
.NDArray
rotate90(int times, int[] axes)
Rotates an array by 90 degrees in the plane specified by axes.NDArray
round()
Returns the round of thisNDArray
element-wise.default NDArray
scaleGradient(double scale)
Returns an NDArray equal to this that magnifies the gradient propagated to this by a constant.NDArray
sequenceMask(NDArray sequenceLength)
Sets all elements outside the sequence to 0.NDArray
sequenceMask(NDArray sequenceLength, float value)
Sets all elements outside the sequence to a constant value.default void
set(byte[] data)
Sets thisNDArray
value from an array of bytes.default void
set(double[] data)
Sets thisNDArray
value from an array of doubles.default void
set(float[] data)
Sets thisNDArray
value from an array of floats.default void
set(int[] data)
Sets thisNDArray
value from an array of ints.default void
set(long[] data)
Sets thisNDArray
value from an array of longs.default void
set(NDIndex index, NDArray value)
Sets the specified index in thisNDArray
with the given values.default void
set(NDIndex index, java.lang.Number value)
Sets the specified index in thisNDArray
with the given value.default void
set(NDIndex index, java.util.function.Function<NDArray,NDArray> function)
Sets the specific index by a function.default void
set(NDArray index, java.lang.Number value)
Sets theNDArray
by boolean mask.void
set(java.nio.Buffer data)
Sets thisNDArray
value fromBuffer
.void
setName(java.lang.String name)
Sets name of thisNDArray
.void
setRequiresGradient(boolean requiresGrad)
Attaches a gradientNDArray
to thisNDArray
and marks it soGradientCollector.backward(NDArray)
can compute the gradient with respect to it.default void
setScalar(NDIndex index, java.lang.Number value)
Sets the specified scalar in thisNDArray
with the given value.default boolean
shapeEquals(NDArray other)
Checks 2NDArray
s for equal shapes.NDArray
sign()
Returns the element-wise sign.NDArray
signi()
Returns the element-wise sign in-place.NDArray
sin()
Returns the trigonometric sine of thisNDArray
element-wise.NDArray
sinh()
Returns the hyperbolic sine of thisNDArray
element-wise.default long
size()
Returns the total number of elements in thisNDArray
.default long
size(int axis)
Returns the size of thisNDArray
along a given axis.NDArray
softmax(int axis)
Applies the softmax function along the given axis.NDArray
sort()
Sorts the flattenedNDArray
.NDArray
sort(int axis)
Sorts the flattenedNDArray
.default NDList
split(long sections)
Splits thisNDArray
into multiple subNDArray
s given sections along first axis.default NDList
split(long[] indices)
Splits thisNDArray
into multiple sub-NDArray
s given indices along first axis.NDList
split(long[] indices, int axis)
Splits thisNDArray
into multiple sub-NDArray
s given indices along given axis.default NDList
split(long sections, int axis)
Splits thisNDArray
into multiple subNDArray
s given sections along the given axis.NDArray
sqrt()
Returns the square root of thisNDArray
element-wise.NDArray
square()
Returns the square of thisNDArray
element-wise.default NDArray
squeeze()
Removes all singleton dimensions from thisNDArray
Shape
.default NDArray
squeeze(int axis)
Removes a singleton dimension at the given axis.NDArray
squeeze(int[] axes)
Removes singleton dimensions at the given axes.default NDArray
stack(NDArray array)
Joins aNDArray
along the first axis.default NDArray
stack(NDArray array, int axis)
Joins aNDArray
along a new axis.NDArray
stopGradient()
Returns an NDArray equal to this that stop gradient propagation through it.NDArray
sub(NDArray other)
Subtracts the otherNDArray
from thisNDArray
element-wise.NDArray
sub(java.lang.Number n)
Subtracts a number from thisNDArray
element-wise.NDArray
subi(NDArray other)
Subtracts the otherNDArray
from thisNDArray
element-wise in place.NDArray
subi(java.lang.Number n)
Subtracts a number from thisNDArray
element-wise in place.NDArray
sum()
Returns the sum of thisNDArray
.default NDArray
sum(int[] axes)
Returns the sum of thisNDArray
along given axes.NDArray
sum(int[] axes, boolean keepDims)
Returns the sum of thisNDArray
along given axes.default NDArray
swapAxes(int axis1, int axis2)
Interchanges two axes of thisNDArray
.NDArray
tan()
Returns the trigonometric tangent of thisNDArray
element-wise.NDArray
tanh()
Returns the hyperbolic tangent of thisNDArray
element-wise.NDArray
tile(int axis, long repeats)
Constructs aNDArray
by repeating thisNDArray
the number of times given by repeats along given axis.NDArray
tile(long repeats)
Constructs aNDArray
by repeating thisNDArray
the number of times given repeats.NDArray
tile(long[] repeats)
Constructs aNDArray
by repeating thisNDArray
the number of times given by repeats.NDArray
tile(Shape desiredShape)
Constructs aNDArray
by repeating thisNDArray
the number of times to match the desired shape.default java.lang.Number[]
toArray()
Converts thisNDArray
to a Number array based on itsDataType
.default boolean[]
toBooleanArray()
Converts thisNDArray
to a boolean array.default byte[]
toByteArray()
Converts thisNDArray
to a byte array.default java.lang.String
toDebugString()
Runs the debug string representation of thisNDArray
.default java.lang.String
toDebugString(int maxSize, int maxDepth, int maxRows, int maxColumns)
Runs the debug string representation of thisNDArray
.NDArray
toDegrees()
Converts thisNDArray
from radians to degrees element-wise.NDArray
toDense()
Returns a dense representation of the sparseNDArray
.NDArray
toDevice(Device device, boolean copy)
Moves thisNDArray
to a differentDevice
.default double[]
toDoubleArray()
Converts thisNDArray
to a double array.default float[]
toFloatArray()
Converts thisNDArray
to a float array.default int[]
toIntArray()
Converts thisNDArray
to an int array.default long[]
toLongArray()
Converts thisNDArray
to a long array.NDArray
toRadians()
Converts thisNDArray
from degrees to radians element-wise.NDArray
toSparse(SparseFormat fmt)
Returns a sparse representation ofNDArray
.default java.lang.String[]
toStringArray()
Converts thisNDArray
to a String array.java.lang.String[]
toStringArray(java.nio.charset.Charset charset)
Converts thisNDArray
to a String array with the specified charset.NDArray
toType(DataType dataType, boolean copy)
Converts thisNDArray
to a differentDataType
.default int[]
toUint8Array()
Converts thisNDArray
to a uint8 array.default NDArray
trace()
Returns the sum along diagonals of thisNDArray
.default NDArray
trace(int offset)
Returns the sum along diagonals of thisNDArray
.NDArray
trace(int offset, int axis1, int axis2)
Returns the sum along diagonals of thisNDArray
.NDArray
transpose()
Returns thisNDArray
with axes transposed.NDArray
transpose(int... axes)
Returns thisNDArray
with given axes transposed.NDArray
trunc()
Returns the truncated value of thisNDArray
element-wise.default NDArray
zerosLike()
-
Methods inherited from interface ai.djl.ndarray.BytesSupplier
getAsBytes, getAsObject, getAsString, toByteBuffer
-
Methods inherited from interface ai.djl.ndarray.NDResource
attach, detach, getManager, tempAttach
-
-
-
-
Method Detail
-
decode
static NDArray decode(NDManager manager, byte[] byteArray)
DecodesNDArray
from bytes.- Parameters:
manager
-NDManager
used to create thisNDArray
byteArray
- data used to decode- Returns:
- decoded
NDArray
-
getName
java.lang.String getName()
Returns the name of thisNDArray
.- Returns:
- the name of this
NDArray
-
setName
void setName(java.lang.String name)
Sets name of thisNDArray
.- Parameters:
name
- the name of thisNDArray
-
getUid
java.lang.String getUid()
Returns unique identifier of thisNDArray
.- Returns:
- unique identifier of this
NDArray
-
getDataType
DataType getDataType()
Returns theDataType
of thisNDArray
.DataType
is a definition of the precision level of theNDArray
. All values inside the sameNDArray
would have the sameDataType
.- Returns:
- the
DataType
of thisNDArray
-
getDevice
Device getDevice()
Returns theDevice
of thisNDArray
.Device
class contains the information where thisNDArray
stored in memory, like CPU/GPU.- Returns:
- the
Device
of thisNDArray
-
getShape
Shape getShape()
Returns theShape
of thisNDArray
.Shape
defines how thisNDArray
is represented multi-dimensionally.- Returns:
- the
Shape
of thisNDArray
-
getSparseFormat
SparseFormat getSparseFormat()
Returns theSparseFormat
of thisNDArray
.- Returns:
- the
SparseFormat
of thisNDArray
-
isSparse
default boolean isSparse()
- Returns:
true
if thisNDArray
is aSparseNDArray
-
isScalar
default boolean isScalar()
- Returns:
true
if thisNDArray
is a scalarNDArray
with emptyShape
-
encode
default byte[] encode()
EncodesNDArray
to byte array.- Returns:
- byte array
-
toType
NDArray toType(DataType dataType, boolean copy)
Converts thisNDArray
to a differentDataType
.
-
setRequiresGradient
void setRequiresGradient(boolean requiresGrad)
Attaches a gradientNDArray
to thisNDArray
and marks it soGradientCollector.backward(NDArray)
can compute the gradient with respect to it.- Parameters:
requiresGrad
- ifNDArray
requires gradient or not
-
getGradient
NDArray getGradient()
Returns the gradientNDArray
attached to thisNDArray
.- Returns:
- the gradient
NDArray
- Throws:
java.lang.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
NDArray
else 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
default NDArray scaleGradient(double scale)
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 thisNDArray
along a given axis.- Parameters:
axis
- the axis to return the size for- Returns:
- the size of this
NDArray
along a given axis
-
size
default long size()
Returns the total number of elements in thisNDArray
.- Returns:
- the number of elements in this
NDArray
-
toDoubleArray
default double[] toDoubleArray()
Converts thisNDArray
to a double array.- Returns:
- a double array
- Throws:
java.lang.IllegalStateException
- whenDataType
of thisNDArray
mismatches
-
toFloatArray
default float[] toFloatArray()
Converts thisNDArray
to a float array.- Returns:
- a float array
- Throws:
java.lang.IllegalStateException
- whenDataType
of thisNDArray
mismatches
-
toIntArray
default int[] toIntArray()
Converts thisNDArray
to an int array.- Returns:
- an int array
- Throws:
java.lang.IllegalStateException
- whenDataType
of thisNDArray
mismatches
-
toLongArray
default long[] toLongArray()
Converts thisNDArray
to a long array.- Returns:
- a long array
- Throws:
java.lang.IllegalStateException
- whenDataType
of thisNDArray
mismatches
-
toByteArray
default byte[] toByteArray()
Converts thisNDArray
to a byte array.- Returns:
- a byte array
- Throws:
java.lang.IllegalStateException
- whenDataType
of thisNDArray
mismatches
-
toUint8Array
default int[] toUint8Array()
Converts thisNDArray
to a uint8 array.- Returns:
- a uint8 array
- Throws:
java.lang.IllegalStateException
- whenDataType
of thisNDArray
mismatches
-
toBooleanArray
default boolean[] toBooleanArray()
Converts thisNDArray
to a boolean array.- Returns:
- a boolean array
- Throws:
java.lang.IllegalStateException
- whenDataType
of thisNDArray
mismatches
-
toStringArray
default java.lang.String[] toStringArray()
Converts thisNDArray
to a String array.This method is only applicable to the String typed NDArray and not for printing purpose
- Returns:
- Array of Strings
-
toStringArray
java.lang.String[] toStringArray(java.nio.charset.Charset charset)
Converts thisNDArray
to a String array with the specified charset.This method is only applicable to the String typed NDArray and not for printing purpose
- Parameters:
charset
- to charset for the string- Returns:
- Array of Strings
-
toArray
default java.lang.Number[] toArray()
Converts thisNDArray
to a Number array based on itsDataType
.- Returns:
- a Number array
-
set
void set(java.nio.Buffer data)
Sets thisNDArray
value fromBuffer
.- Parameters:
data
- the input buffered data
-
set
default void set(float[] data)
Sets thisNDArray
value from an array of floats.- Parameters:
data
- the array of floats to set
-
set
default void set(int[] data)
Sets thisNDArray
value from an array of ints.- Parameters:
data
- the array of integers to set
-
set
default void set(double[] data)
Sets thisNDArray
value from an array of doubles.- Parameters:
data
- the array of doubles to set
-
set
default void set(long[] data)
Sets thisNDArray
value from an array of longs.- Parameters:
data
- the array of longs to set
-
set
default void set(byte[] data)
Sets thisNDArray
value from an array of bytes.- Parameters:
data
- the array of bytes to set
-
set
default void set(NDIndex index, NDArray value)
Sets the specified index in thisNDArray
with the given values.- Parameters:
index
- the locations to updatevalue
- the value to replace with. Can broadcast if given smaller dimensions than the index
-
set
default void set(NDIndex index, java.lang.Number value)
Sets the specified index in thisNDArray
with the given value.- Parameters:
index
- the locations to updatevalue
- the value to replace with
-
set
default void set(NDIndex index, java.util.function.Function<NDArray,NDArray> function)
Sets the specific index by a function.- Parameters:
index
- the locations to updatefunction
- the function to change the value
-
set
default void set(NDArray index, java.lang.Number value)
Sets theNDArray
by boolean mask.- Parameters:
index
- the booleanNDArray
that indicates what to getvalue
- the value to replace with
-
setScalar
default void setScalar(NDIndex index, java.lang.Number value)
Sets the specified scalar in thisNDArray
with the given value.- Parameters:
index
- the single index to updatevalue
- the value to replace with- Throws:
java.lang.IllegalArgumentException
- thrown if the index does not correspond to a single element
-
get
default NDArray get(NDIndex index)
Returns a partialNDArray
.- Parameters:
index
- the section of thisNDArray
to return- Returns:
- the partial
NDArray
-
get
default NDArray get(java.lang.String indices, java.lang.Object... args)
Returns a partialNDArray
.- Parameters:
indices
- the indices used to indicate what to getargs
- arguments to replace the varaible "{}" in the indices string. Can be an integer, long, booleanNDArray
, or integerNDArray
.- Returns:
- the partial
NDArray
- See Also:
NDIndex(String, Object...)
-
get
default NDArray get(long... indices)
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
default NDArray get(NDArray index)
Returns a partialNDArray
.- Parameters:
index
- the booleanNDArray
that indicates what to get- Returns:
- the partial
NDArray
-
gather
NDArray gather(NDArray index, int axis)
Returns a partialNDArray
pointed by the indexed array. Given NDArray arr, NDArray idx, and long axis, the output is out_{ijk} = arr_{idx_{ijk}, j, k} if axis=0 or arr_{i, idx_{ijk}, k} if axis=1 or arr_{i, j, idx_{ijk}} 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
NDArray
of the same shape as index
-
getScalar
default NDArray getScalar(long... indices)
Returns a scalarNDArray
corresponding to a single element.- Parameters:
indices
- the indices of the scalar to return. Must return only a single element- Returns:
- a scalar
NDArray
corresponding to the element - Throws:
java.lang.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:
java.lang.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:
java.lang.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:
java.lang.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:
java.lang.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:
java.lang.IllegalArgumentException
- thrown if the result is not a single element
-
getUint8
default int getUint8(long... indices)
Returns an integer element from thisNDArray
that 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:
java.lang.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:
java.lang.IllegalArgumentException
- thrown if the result is not a single element
-
copyTo
void copyTo(NDArray array)
Deep-copies the currentNDArray
to the one passed in.- Parameters:
array
- thisNDArray
prepared to be copied to
-
duplicate
default NDArray duplicate()
Returns a copy of thisNDArray
.- Returns:
- a copy of this
NDArray
-
booleanMask
default NDArray booleanMask(NDArray index)
Returns portion of thisNDArray
given the index booleanNDArray
along 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
- booleanNDArray
mask- Returns:
- the result
NDArray
-
booleanMask
NDArray booleanMask(NDArray index, int axis)
Returns portion of thisNDArray
given the index booleanNDArray
along given axis.- Parameters:
index
- booleanNDArray
maskaxis
- an integer that represents the axis ofNDArray
to mask from- Returns:
- the result
NDArray
-
sequenceMask
NDArray sequenceMask(NDArray sequenceLength, float value)
Sets all elements outside the sequence to a constant value.This function takes an n-dimensional input array of the form [batch_size, max_sequence_length, ....] and returns an array of the same shape. Parameter
sequenceLength
is used to handle variable-length sequences. sequence_length should be an input array of positive ints of dimension [batch_size].- Parameters:
sequenceLength
- used to handle variable-length sequencesvalue
- the constant value to be set- Returns:
- the result
NDArray
-
sequenceMask
NDArray sequenceMask(NDArray sequenceLength)
Sets all elements outside the sequence to 0.This function takes an n-dimensional input array of the form [batch_size, max_sequence_length, ....] and returns an array of the same shape. Parameter
sequenceLength
is used to handle variable-length sequences. sequence_length should be an input array of positive ints of dimension [batch_size].- Parameters:
sequenceLength
- used to handle variable-length sequences- Returns:
- the result
NDArray
-
zerosLike
default NDArray zerosLike()
Returns anNDArray
of zeros with the sameShape
,DataType
andSparseFormat
as 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
NDArray
filled with zeros
-
onesLike
default NDArray onesLike()
Returns anNDArray
of ones with the sameShape
,DataType
andSparseFormat
as 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
NDArray
filled with ones
-
like
default NDArray like()
Returns an uninitializedNDArray
with the sameShape
,DataType
andSparseFormat
as 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
boolean contentEquals(java.lang.Number number)
Returnstrue
if all elements in thisNDArray
are equal to theNumber
.Examples
jshell> NDArray array = manager.ones(new Shape(2, 3)); jshell> array.contentEquals(1); // return true instead of boolean NDArray true
- Parameters:
number
- the number to compare- Returns:
- the boolean result
-
contentEquals
boolean contentEquals(NDArray other)
Returnstrue
if all elements in thisNDArray
are equal to the otherNDArray
.Examples
jshell> NDArray array1 = manager.arange(6f).reshape(2, 3); jshell> NDArray array2 = manager.create(new float[] {0f, 1f, 2f, 3f, 4f, 5f}, new Shape(2, 3)); jshell> array1.contentEquals(array2); // return true instead of boolean NDArray true
- Parameters:
other
- the otherNDArray
to compare- Returns:
- the boolean result
-
shapeEquals
default boolean shapeEquals(NDArray other)
Checks 2NDArray
s for equal shapes.Shapes are considered equal if:
- Both
NDArray
s have equal rank, and - size(0)...size(rank()-1) are equal for both
NDArray
s
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:
true
if theShape
s are the same
- Both
-
allClose
default boolean allClose(NDArray other)
Returnstrue
if twoNDArray
s 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
- theNDArray
to compare with- Returns:
- the boolean result
-
allClose
default boolean allClose(NDArray other, double rtol, double atol, boolean equalNan)
Returnstrue
if twoNDArray
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, 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
- theNDArray
to compare withrtol
- the relative tolerance parameteratol
- the absolute tolerance parameterequalNan
- whether to compare NaN’s as equal. Iftrue
, NaN’s in theNDArray
will be considered equal to NaN’s in the otherNDArray
- Returns:
- the boolean result
-
eq
NDArray eq(java.lang.Number n)
Returns the booleanNDArray
for element-wise "Equals" comparison.Examples
jshell> NDArray array = manager.ones(new Shape(1)); jshell> array.eq(1); ND: (1) cpu() boolean [ true]
- Parameters:
n
- the number to compare- Returns:
- the boolean
NDArray
for element-wise "Equals" comparison
-
eq
NDArray eq(NDArray other)
Returns the booleanNDArray
for element-wise "Equals" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {0f, 1f, 3f}); jshell> NDArray array2 = manager.arange(3f); jshell> array1.eq(array2); ND: (3) cpu() boolean [ true, true, false]
- Parameters:
other
- theNDArray
to compare- Returns:
- the boolean
NDArray
for element-wise "Equals" comparison
-
neq
NDArray neq(java.lang.Number n)
Returns the booleanNDArray
for element-wise "Not equals" comparison.Examples
jshell> NDArray array = manager.arange(4f).reshape(2, 2); jshell> array.neq(1); ND: (2, 2) cpu() boolean [[ true, false], [ true, true], ]
- Parameters:
n
- the number to compare- Returns:
- the boolean
NDArray
for element-wise "Not equals" comparison
-
neq
NDArray neq(NDArray other)
Returns the booleanNDArray
for element-wise "Not equals" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {1f, 3f}); jshell> array1.neq(array2); ND: (2) cpu() boolean [false, true] jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {1f, 3f, 1f, 4f}, new Shape(2, 2)); jshell> array1.neq(array2); // broadcasting ND: (2, 2) cpu() boolean [[false, true], [false, true], ]
- Parameters:
other
- theNDArray
to compare- Returns:
- the boolean
NDArray
for element-wise "Not equals" comparison
-
gt
NDArray gt(java.lang.Number n)
Returns the booleanNDArray
for element-wise "Greater" comparison.Examples
jshell> NDArray array = manager.create(new float[] {4f, 2f}); jshell> array.gt(2f); ND: (2) cpu() boolean [ true, false]
- Parameters:
n
- the number to compare- Returns:
- the boolean
NDArray
for element-wise "Greater" comparison
-
gt
NDArray gt(NDArray other)
Returns the booleanNDArray
for element-wise "Greater Than" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {4f, 2f}); jshell> NDArray array2 = manager.create(new float[] {2f, 2f}); jshell> array1.neq(array2); ND: (2) cpu() boolean [ true, false]
- Parameters:
other
- theNDArray
to compare- Returns:
- the boolean
NDArray
for element-wis "Greater Than" comparison
-
gte
NDArray gte(java.lang.Number n)
Returns the booleanNDArray
for element-wise "Greater or equals" comparison.jshell> NDArray array = manager.create(new float[] {4f, 2f}); jshell> array.gte(2f); ND: (2) cpu() boolean [ true, true]
- Parameters:
n
- the number to compare- Returns:
- the boolean
NDArray
for element-wise "Greater or equals" comparison
-
gte
NDArray gte(NDArray other)
Returns the booleanNDArray
for element-wise "Greater or equals" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {4f, 2f}); jshell> NDArray array2 = manager.create(new float[] {2f, 2f}); jshell> array1.gte(array2); ND: (2) cpu() boolean [ true, true]
- Parameters:
other
- the number to compare- Returns:
- the boolean
NDArray
for "Greater or equals" comparison
-
lt
NDArray lt(java.lang.Number n)
Returns the booleanNDArray
for element-wise "Less" comparison.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.lt(2f); ND: (2) cpu() boolean [ true, false]
- Parameters:
n
- the number to compare- Returns:
- the boolean
NDArray
for element-wise "Less" comparison
-
lt
NDArray lt(NDArray other)
Returns the booleanNDArray
for element-wise "Less" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {2f, 2f}); jshell> array1.lt(array2); ND: (2) cpu() boolean [ true, false]
- Parameters:
other
- theNDArray
to compare- Returns:
- the boolean
NDArray
for element-wise "Less" comparison
-
lte
NDArray lte(java.lang.Number n)
Returns the booleanNDArray
for element-wise "Less or equals" comparison.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.lte(2f); ND: (2) cpu() boolean [ true, true]
- Parameters:
n
- the number to compare- Returns:
- the boolean
NDArray
for element-wise "Less or equals" comparison
-
lte
NDArray lte(NDArray other)
Returns the booleanNDArray
for element-wise "Less or equals" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {2f, 2f}); jshell> array1.lte(array2); ND: (2) cpu() boolean [ true, true]
- Parameters:
other
- theNDArray
to compare- Returns:
- the boolean
NDArray
for element-wise "Less or equals" comparison
-
add
NDArray add(java.lang.Number n)
Adds a number to thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.add(2f); ND: (2) cpu() float32 [3., 4.]
- Parameters:
n
- the number to add- Returns:
- the result
NDArray
-
add
NDArray add(NDArray other)
Adds otherNDArray
s to thisNDArray
element-wise.The shapes of this
NDArray
and otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.arange(3f); jshell> array1.add(array2); // broadcasting ND: (3, 3) cpu() float32 [[ 0., 2., 4.], [ 3., 5., 7.], [ 6., 8., 10.], ]
- Parameters:
other
- the otherNDArray
s to add- Returns:
- the result
NDArray
- Throws:
java.lang.IllegalArgumentException
- others arrays must have at least one element
-
sub
NDArray sub(java.lang.Number n)
Subtracts a number from thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.sub(2f); ND: (2) cpu() float32 [-1., 0.]
- Parameters:
n
- the number to subtract from- Returns:
- the result
NDArray
-
sub
NDArray sub(NDArray other)
Subtracts the otherNDArray
from thisNDArray
element-wise.The shapes of this
NDArray
and otherNDArray
s must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9).reshape(3, 3); jshell> NDArray array2 = manager.arange(3); jshell> array1.sub(array2); // broadcasting ND: (3, 3) cpu() float32 [[0., 0., 0.], [3., 3., 3.], [6., 6., 6.], ]
- Parameters:
other
- the otherNDArray
to subtract from- Returns:
- the result
NDArray
-
mul
NDArray mul(java.lang.Number n)
Multiplies thisNDArray
by a number element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.mul(3f); ND: (2) cpu() float32 [3., 6.]
- Parameters:
n
- the number to multiply by- Returns:
- the result
NDArray
-
mul
NDArray mul(NDArray other)
Multiplies thisNDArray
by otherNDArray
s element-wise.The shapes of this
NDArray
and otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.arange(3f); jshell> array1.mul(array2); // broadcasting ND: (3, 3) cpu() float32 [[ 0., 1., 4.], [ 0., 4., 10.], [ 0., 7., 16.], ]
- Parameters:
other
- the otherNDArray
s to multiply by- Returns:
- the result
NDArray
- Throws:
java.lang.IllegalArgumentException
- others arrays must have at least one element
-
div
NDArray div(java.lang.Number n)
Divides thisNDArray
by a number element-wise.Examples
jshell> NDArray array = manager.arange(5f); jshell> array.div(4f); ND: (5) cpu() float32 [0. , 0.25, 0.5 , 0.75, 1. ]
- Parameters:
n
- the number to divide by- Returns:
- the result
NDArray
-
div
NDArray div(NDArray other)
Divides thisNDArray
by the otherNDArray
element-wise.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.ones(new Shape(3)).mul(10); jshell> array1.div(array2); // broadcasting ND: (3, 3) cpu() float32 [[0. , 0.1, 0.2], [0.3, 0.4, 0.5], [0.6, 0.7, 0.8], ]
- Parameters:
other
- the otherNDArray
to divide by- Returns:
- the result
NDArray
-
mod
NDArray mod(java.lang.Number n)
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
NDArray mod(NDArray other)
Returns element-wise remainder of division.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new float[] {4f, 7f}); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> array1.mod(array2); ND: (2) cpu() float32 [0., 1.]
- Parameters:
other
- the divisorNDArray
- Returns:
- the result
NDArray
-
pow
NDArray pow(java.lang.Number n)
Takes the power of thisNDArray
with a number element-wise.Examples
jshell> NDArray array = manager.arange(5f); jshell> array.pow(4f); ND: (6) cpu() float32 [ 0., 1., 8., 27., 64., 125.]
- Parameters:
n
- the number to take the power with- Returns:
- the result
NDArray
-
pow
NDArray pow(NDArray other)
Takes the power of thisNDArray
with the otherNDArray
element-wise.Examples
jshell> NDArray array1 = manager.arange(6f).reshape(3, 2); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> array1.pow(array2); // broadcasting ND: (3, 2) cpu() float32 [[ 0., 1.], [ 4., 27.], [ 16., 125.], ]
- Parameters:
other
- the otherNDArray
to take the power with- Returns:
- the result
NDArray
-
addi
NDArray addi(java.lang.Number n)
Adds a number to thisNDArray
element-wise in place.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.addi(2f); ND: (2) cpu() float32 [3., 4.] jshell> array; ND: (2) cpu() float32 [3., 4.]
- Parameters:
n
- the number to add- Returns:
- the result
NDArray
-
addi
NDArray addi(NDArray other)
Adds otherNDArray
s to thisNDArray
element-wise in place.The shapes of this
NDArray
and otherNDArray
s must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {3f, 4f}); jshell> array1.addi(array2); ND: (2) cpu() float32 [4., 6.] jshell> array; ND: (2) cpu() float32 [4., 6.]
- Parameters:
other
- the otherNDArray
s to add- Returns:
- the result
NDArray
-
subi
NDArray subi(java.lang.Number n)
Subtracts a number from thisNDArray
element-wise in place.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.subi(2f); ND: (2) cpu() float32 [-1., 0.] jshell> array; ND: (2) cpu() float32 [-1., 0.]
- Parameters:
n
- the number to subtract- Returns:
- the result
NDArray
-
subi
NDArray subi(NDArray other)
Subtracts the otherNDArray
from thisNDArray
element-wise in place.The shapes of this
NDArray
and otherNDArray
s must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.arange(3f); jshell> array1.subi(array2); // broadcasting ND: (3, 3) cpu() float32 [[0., 0., 0.], [3., 3., 3.], [6., 6., 6.], ] jshell> array1; [[0., 0., 0.], [3., 3., 3.], [6., 6., 6.], ]
- Parameters:
other
- the otherNDArray
to subtract from- Returns:
- the result
NDArray
-
muli
NDArray muli(java.lang.Number n)
Multiplies thisNDArray
by a number element-wise in place.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.muli(3f); ND: (2) cpu() float32 [3., 6.] jshell> array; ND: (2) cpu() float32 [3., 6.]
- Parameters:
n
- the number to multiply by- Returns:
- the result
NDArray
-
muli
NDArray muli(NDArray other)
Multiplies thisNDArray
by otherNDArray
element-wise in place.The shapes of this
NDArray
and otherNDArray
s must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.arange(3f); jshell> array1.muli(array2); // broadcasting ND: (3, 3) cpu() float32 [[ 0., 1., 4.], [ 0., 4., 10.], [ 0., 7., 16.], ] jshell> array1; ND: (3, 3) cpu() float32 [[ 0., 1., 4.], [ 0., 4., 10.], [ 0., 7., 16.], ]
- Parameters:
other
- the other NDArrays to multiply with- Returns:
- the result
NDArray
-
divi
NDArray divi(java.lang.Number n)
Divides thisNDArray
by a number element-wise in place.Examples
jshell> NDArray array = manager.arange(5f); jshell> array.divi(4f); ND: (5) cpu() float32 [0. , 0.25, 0.5 , 0.75, 1. ] jshell> array; ND: (5) cpu() float32 [0. , 0.25, 0.5 , 0.75, 1. ]
- Parameters:
n
- the number to divide values by- Returns:
- the array after applying division operation
-
divi
NDArray divi(NDArray other)
Divides thisNDArray
by the otherNDArray
element-wise in place.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.ones(new Shape(3)).mul(10); jshell> array1.divi(array2); // broadcasting ND: (3, 3) cpu() float32 [[0. , 0.1, 0.2], [0.3, 0.4, 0.5], [0.6, 0.7, 0.8], ] jshell> array1; [[0. , 0.1, 0.2], [0.3, 0.4, 0.5], [0.6, 0.7, 0.8], ]
- Parameters:
other
- the otherNDArray
to divide by- Returns:
- the result of the divide
-
modi
NDArray modi(java.lang.Number n)
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
NDArray modi(NDArray other)
Returns in place element-wise remainder of division in place.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new float[] {4f, 7f}); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> array1.modi(array2); ND: (2) cpu() float32 [0., 1.] jshell> array1; ND: (2) cpu() float32 [0., 1.]
- Parameters:
other
- the divisorNDArray
- Returns:
- the result of the divide
-
powi
NDArray powi(java.lang.Number n)
Takes the power of thisNDArray
with a number element-wise in place.Examples
jshell> NDArray array = manager.arange(5f); jshell> array.powi(4f); ND: (6) cpu() float32 [ 0., 1., 8., 27., 64., 125.] jshell> array; ND: (6) cpu() float32 [ 0., 1., 8., 27., 64., 125.]
- Parameters:
n
- the number to raise the power to- Returns:
- the result
NDArray
-
powi
NDArray powi(NDArray other)
Takes the power of thisNDArray
with the otherNDArray
element-wise in place.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(6f).reshape(3, 2); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> array1.powi(array2); // broadcasting ND: (3, 2) cpu() float32 [[ 0., 1.], [ 4., 27.], [ 16., 125.], ] jshell> array1; ND: (3, 2) cpu() float32 [[ 0., 1.], [ 4., 27.], [ 16., 125.], ]
- Parameters:
other
- the otherNDArray
to 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
NDArray maximum(java.lang.Number n)
Returns the maximum of thisNDArray
and a number element-wise.Examples
jshell> NDArray array = manager.create(new float[] {2f, 3f, 4f}); jshell> array.maximum(3f); ND: (3) cpu() float32 [3., 3., 4.]
- Parameters:
n
- the number to be compared- Returns:
- the maximum of this
NDArray
and a number element-wise
-
maximum
NDArray maximum(NDArray other)
Returns the maximum of thisNDArray
and the otherNDArray
element-wise.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new float[] {2f, 3f, 4f}); jshell> NDArray array2 = manager.create(new float[] {1f, 5f, 2f}); jshell> array1.maximum(array2); ND: (3) cpu() float32 [2., 5., 4.] jshell> NDArray array1 = manager.eye(2); jshell> NDArray array2 = manager.create(new float[] {0.5f, 2f}); jshell> array1.maximum(array2); // broadcasting ND: (2, 2) cpu() float32 [[1. , 2. ], [0.5, 2. ], ]
- Parameters:
other
- theNDArray
to be compared- Returns:
- the maximum of this
NDArray
and the otherNDArray
element-wise
-
minimum
NDArray minimum(java.lang.Number n)
Returns the minimum of thisNDArray
and a number element-wise.Examples
jshell> NDArray array = manager.create(new float[] {2f, 3f, 4f}); jshell> array.minimum(3f); ND: (3) cpu() float32 [2., 3., 3.]
- Parameters:
n
- the number to be compared- Returns:
- the minimum of this
NDArray
and a number element-wise
-
minimum
NDArray minimum(NDArray other)
Returns the minimum of thisNDArray
and the otherNDArray
element-wise.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new float[] {2f, 3f, 4f}); jshell> NDArray array2 = manager.create(new float[] {1f, 5f, 2f}); jshell> array1.minimum(array2); ND: (3) cpu() float32 [1., 3., 2.] jshell> NDArray array1 = manager.eye(2); jshell> NDArray array2 = manager.create(new float[] {0.5f, 2f}); jshell> array1.minimum(array2); // broadcasting ND: (2, 2) cpu() float32 [[0.5, 0. ], [0. , 1. ], ]
- Parameters:
other
- theNDArray
to be compared- Returns:
- the minimum of this
NDArray
and the otherNDArray
element-wise
-
neg
NDArray neg()
Returns the numerical negativeNDArray
element-wise.jshell> NDArray array = manager.arange(5f); jshell> array.neg(); ND: (5) cpu() float32 [-0., -1., -2., -3., -4.]
- Returns:
- the result
NDArray
-
negi
NDArray negi()
Returns the numerical negativeNDArray
element-wise in place.jshell> NDArray array = manager.arange(5f); jshell> array.negi(); jshell> array; ND: (5) cpu() float32 [-0., -1., -2., -3., -4.]
- Returns:
- the result
NDArray
-
abs
NDArray abs()
Returns the absolute value of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {-1f, -2f}); jshell> array.abs(); ND: (2) cpu() float32 [1., 2.]
- Returns:
- the result
NDArray
-
square
NDArray square()
Returns the square of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {2f, -3f}); jshell> array.square(); ND: (2) cpu() float32 [4., 9.]
- Returns:
- the result
NDArray
-
sqrt
NDArray sqrt()
Returns the square root of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {4f}); jshell> array.sqrt(); ND: (1) cpu() float32 [2., ]
- Returns:
- the result
NDArray
-
cbrt
NDArray cbrt()
Returns the cube-root of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 8f, 27f}); jshell> array.cbrt(); ND: (3) cpu() float32 [1., 2., 3.]
- Returns:
- the result
NDArray
-
floor
NDArray floor()
Returns the floor of thisNDArray
element-wise.The floor of the scalar x is the largest integer i, such that i <= x.
Examples
jshell> NDArray array = manager.create(new float[] {-1.7f, -1.5f, -0.2f, 0.2f, 1.5f, 1.7f, 2.0f}); jshell> array.floor(); ND: (7) cpu() float32 [-2., -2., -1., 0., 1., 1., 2.]
- Returns:
- the result
NDArray
-
ceil
NDArray ceil()
Returns the ceiling of thisNDArray
element-wise.The ceil of the scalar x is the smallest integer i, such that i >= x.
Examples
jshell> NDArray array = manager.create(new float[] {-1.7f, -1.5f, -0.2f, 0.2f, 1.5f, 1.7f, 2.0f}); jshell> array.ceil(); ND: (7) cpu() float32 [-1., -1., -0., 1., 2., 2., 2.]
- Returns:
- the result
NDArray
-
round
NDArray round()
Returns the round of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {-1.7f, -1.5f, -0.2f, 0.2f, 1.5f, 1.7f, 2.0f}); jshell> array.round(); ND: (7) cpu() float32 [-2., -2., -0., 0., 2., 2., 2.]
- Returns:
- the result
NDArray
-
trunc
NDArray trunc()
Returns the truncated value of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {-1.7f, -1.5f, -0.2f, 0.2f, 1.5f, 1.7f, 2.0f}); jshell> array.trunc(); ND: (7) cpu() float32 [-1., -1., -0., 0., 1., 1., 2.]
- Returns:
- the result
NDArray
-
exp
NDArray exp()
Returns the exponential value of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {0f, 2.5f}); jshell> array.exp(); ND: (2) cpu() float32 [ 1. , 12.1825]
- Returns:
- the result
NDArray
-
log
NDArray log()
Returns the natural logarithmic value of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {0f, 2.5f}); jshell> array.log(); ND: (2) cpu() float32 [ -inf, 0.9163]
- Returns:
- the result
NDArray
-
log10
NDArray log10()
Returns the base 10 logarithm of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1000f, 1f, 150f}); jshell> array.log10(); ND: (3) cpu() float32 [3. , 0. , 2.1761]
- Returns:
- the result
NDArray
-
log2
NDArray log2()
Returns the base 2 logarithm of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {8, 1f, 5f}); jshell> array.log2(); ND: (3) cpu() float32 [3. , 0. , 2.3219]
- Returns:
- the result
NDArray
-
sin
NDArray sin()
Returns the trigonometric sine of thisNDArray
element-wise.The input should be in radians (2 Pi radians equals 360 degrees).
Examples
jshell> NDArray array = manager.create(new float[] {0f, 30f, 45f, 60f, 90f}); jshell> array = array.mul(Math.PI).div(180f); jshell> array.sin(); ND: (5) cpu() float32 [0. , 0.5 , 0.7071, 0.866 , 1. ]
- Returns:
- the result
NDArray
-
cos
NDArray cos()
Returns the trigonometric cosine of thisNDArray
element-wise.The input should be in radians (2 Pi radians equals 360 degrees).
Examples
jshell> NDArray array = manager.create(new double[] {0, Math.PI/2, Math.PI}); jshell> array.cos(); ND: (3) cpu() float64 [ 1.0000000e+00, 6.1232340e-17, -1.0000000e+00],
- Returns:
- the result
NDArray
-
tan
NDArray tan()
Returns the trigonometric tangent of thisNDArray
element-wise.The input should be in radians (2 Pi radians equals 360 degrees).
Examples
jshell> NDArray array = manager.create(new double[] {-Math.PI, Math.PI/2, Math.PI}); jshell> array.tan(); ND: (3) cpu() float64 [ 1.2246468e-16, 1.6331239e+16, -1.2246468e-16],
- Returns:
- the result
NDArray
-
asin
NDArray asin()
Returns the inverse trigonometric sine of thisNDArray
element-wise.The input should be in the range [-1, 1]. The output is in the closed interval of [-Pi/2, Pi/2].
Examples
jshell> NDArray array = manager.create(new float[] {1f, -1f, 0f}); jshell> array.asin(); ND: (3) cpu() float64 [ 1.5708, -1.5708, 0. ]
- Returns:
- the result
NDArray
-
acos
NDArray acos()
Returns the inverse trigonometric cosine of thisNDArray
element-wise.The input should be in the range [-1, 1]. The output is in the closed interval of [-Pi/2, Pi/2].
Examples
jshell> NDArray array = manager.create(new float[] {1f, -1f}); jshell> array.acos(); ND: (2) cpu() float64 [0. , 3.1416]
- Returns:
- the result
NDArray
-
atan
NDArray atan()
Returns the inverse trigonometric tangent of thisNDArray
element-wise.The input should be in the range [-1, 1]. The output is in the closed interval of [-Pi/2, Pi/2].
Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f}); jshell> array.atan(); ND: (2) cpu() float64 [0. , 0.7854]
- Returns:
- the result
NDArray
-
sinh
NDArray sinh()
Returns the hyperbolic sine of thisNDArray
element-wise.sinh(x)=0.5*(exp(x) - exp(-x))
Examples
jshell> NDArray array = manager.create(new double[] {0, Math.PI}); jshell> array.sinh(); ND: (2) cpu() float64 [ 0. , 11.5487]
- Returns:
- the result
NDArray
-
cosh
NDArray cosh()
Returns the hyperbolic cosine of thisNDArray
element-wise.cosh(x)=0.5*(exp(x)+exp(-x))
Examples
jshell> NDArray array = manager.create(new double[] {0, Math.PI}); jshell> array.cosh(); ND: (2) cpu() float64 [ 1. , 11.592 ]
- Returns:
- the result
NDArray
-
tanh
NDArray tanh()
Returns the hyperbolic tangent of thisNDArray
element-wise.tanh(x)=sinh(x)/cosh(x)
Examples
jshell> NDArray array = manager.create(new double[] {0, Math.PI}); jshell> array.tanh(); ND: (2) cpu() float64 [0. , 0.9963]
- Returns:
- the result
NDArray
-
asinh
NDArray asinh()
Returns the inverse hyperbolic sine of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new double[] {Math.E, 10}); jshell> array.asinh(); ND: (2) cpu() float64 [1.7254, 2.9982]
- Returns:
- the result
NDArray
-
acosh
NDArray acosh()
Returns the inverse hyperbolic cosine of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new double[] {Math.E, 10}); jshell> array.acosh(); ND: (2) cpu() float64 [1.6575, 2.9932]
- Returns:
- the result
NDArray
-
atanh
NDArray atanh()
Returns the inverse hyperbolic tangent of thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new double[] {0, -0.5}); jshell> array.atanh(); ND: (2) cpu() float64 [ 0. , -0.5493]
- Returns:
- the result
NDArray
-
toDegrees
NDArray toDegrees()
Converts thisNDArray
from radians to degrees element-wise.Examples
jshell> NDArray array = manager.arange(6f).mul(Math.PI / 3); jshell> array.toDegrees(); ND: (6) cpu() float32 [ 0., 60., 120., 180., 240., 300.]
- Returns:
- the result
NDArray
-
toRadians
NDArray toRadians()
Converts thisNDArray
from degrees to radians element-wise.Examples
jshell> NDArray array = manager.arange(6f).mul(60); jshell> array.toRadians(); ND: (6) cpu() float32 [0. , 1.0472, 2.0944, 3.1416, 4.1888, 5.236 ]
- 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
default NDArray max(int[] axes)
Returns the maximum of thisNDArray
along given axes.Examples
jshell> NDArray array = manager.arange(4f).reshape(2,2); jshell> array; ND: (2, 2) cpu() float32 [[0., 1.], [2., 3.], ] jshell> array.max(new int[]{0}); // 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
NDArray
with the specified axes removed from the Shape containing the max - See Also:
max(int[], boolean)
-
max
NDArray max(int[] axes, boolean keepDims)
Returns the maximum of thisNDArray
along given axes.Examples
jshell> NDArray array = manager.arange(4f).reshape(2,2); jshell> array; ND: (2, 2) cpu() float32 [[0., 1.], [2., 3.], ] jshell> array.max(new int[]{0}, true); // Maximum along the first axis and keep dimension ND: (1, 2) cpu() float32 [[2., 3.], ] jshell> array.max(new int[]{1}, true); // Maximum along the second axis and keep dimension ND: (2, 1) cpu() float32 [[1.], [3.], ]
- Parameters:
axes
- the axes along which to operatekeepDims
-true
to keep the specified axes as size 1 in the output array,false
to 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
default NDArray min(int[] axes)
Returns the minimum of thisNDArray
along given axes.Examples
jshell> NDArray array = manager.arange(4f).reshape(2,2); jshell> array; ND: (2, 2) cpu() float32 [[0., 1.], [2., 3.], ] jshell> array.min(new int[]{0}); // 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
NDArray
with the specified axes removed from the Shape containing the min - See Also:
min(int[], boolean)
-
min
NDArray min(int[] axes, boolean keepDims)
Returns the minimum of thisNDArray
along given axes.Examples
jshell> NDArray array = manager.arange(4f).reshape(2,2); jshell> array ND: (2, 2) cpu() float32 [[0., 1.], [2., 3.], ] jshell> array.min(new int[]{0}, true) // Minimum along the first axis and keep dimension ND: (1, 2) cpu() float32 [[0., 1.], ] jshell> array.min(new int[]{1}, true) // Minimum along the second axis and keep dimension ND: (2, 1) cpu() float32 [[0.], [2.], ]
- Parameters:
axes
- the axes along which to operatekeepDims
-true
to keep the specified axes as size 1 in the output array,false
to 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
default NDArray sum(int[] axes)
Returns the sum of thisNDArray
along given axes.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 0f, 5f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[0., 1.], [0., 5.], ] jshell> array.sum(new int[] {0}); 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
NDArray
with the specified axes removed from the Shape containing the sum - See Also:
sum(int[], boolean)
-
sum
NDArray sum(int[] axes, boolean keepDims)
Returns the sum of thisNDArray
along given axes.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 0f, 5f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[0., 1.], [0., 5.], ] jshell> array.sum(new int[] {0}, true); ND: (1, 2) cpu() float32 [[0., 6.], ] jshell> array.sum(new int[] {1}, true); ND: (2, 2) cpu() float32 [[0., 1.], [0., 5.], ]
- Parameters:
axes
- the axes along which to operatekeepDims
-true
to keep the specified axes as size 1 in the output array,false
to squeeze the values out of the output array- Returns:
- the sum of this
NDArray
-
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
default NDArray prod(int[] axes)
Returns the product of thisNDArray
elements over the given axes.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2.], [3., 4.], ] jshell> array.prod(new int[] {0}); 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
NDArray
with the specified axes removed from the Shape containing the prod - See Also:
prod(int[], boolean)
-
prod
NDArray prod(int[] axes, boolean keepDims)
Returns the product of thisNDArray
elements over the given axes.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2.], [3., 4.], ] jshell> array.prod(new int[] {0}, true); ND: (1, 2) cpu() float32 [[3., 8.], ] jshell> array.prod(new int[] {1}, true); ND: (2, 1) cpu() float32 [[ 2.], [12.], ]
- Parameters:
axes
- the axes along which to operatekeepDims
-true
to keep the specified axes as size 1 in the output array,false
to 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
default NDArray mean(int[] axes)
Returns the average of thisNDArray
along given axes.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2.], [3., 4.], ] jshell> array.mean(new int[] {0}); 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
NDArray
with the specified axes removed from the Shape containing the mean - See Also:
mean(int[], boolean)
-
mean
NDArray mean(int[] axes, boolean keepDims)
Returns the average of thisNDArray
along given axes.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2.], [3., 4.], ] jshell> array.mean(new int[] {0}, true); ND: (1, 2) cpu() float32 [[2., 3.], ] jshell> array.mean(new int[] {1}, true); ND: (2, 1) cpu() float32 [[1.5], [3.5], ]
- Parameters:
axes
- the axes along which to operatekeepDims
-true
to keep the specified axes as size 1 in the output array,false
to squeeze the values out of the output array- Returns:
- the average of this
NDArray
-
rotate90
NDArray rotate90(int times, int[] axes)
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
default NDArray trace()
Returns the sum along diagonals of thisNDArray
.If this
NDArray
is 2-D, the sum along its diagonal is returned. If theNDArray
has more than two dimensions, then the axes specified by axis1 and axis2 are used to determine the 2-D sub-arrays whose traces are returned. TheShape
of the resultingNDArray
is 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
default NDArray trace(int offset)
Returns the sum along diagonals of thisNDArray
.If this
NDArray
is 2-D, the sum along its diagonal with the given offset is returned, i.e., the sum of elements a[i,i+offset] for all i. If thisNDArray
has more than two dimensions, then the axes specified by axis1 and axis2 are used to determine the 2-D sub-arrays whose traces are returned. TheShape
of the resulting array is the same as thisNDArray
with axis1 and axis2 removed.Examples
jshell> NDArray array = manager.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
NDArray trace(int offset, int axis1, int axis2)
Returns the sum along diagonals of thisNDArray
.If this
NDArray
is 2-D, the sum along its diagonal with the given offset is returned, i.e., the sum of elements a[i,i+offset] for all i. If thisNDArray
has more than two dimensions, then the axes specified by axis1 and axis2 are used to determine the 2-D sub-arrays whose traces are returned. TheShape
of the resulting array is the same as thisNDArray
with axis1 and axis2 removed.Examples
jshell> NDArray array = manager.arange(8f).reshape(2, 2, 2); jshell> array; ND: (2, 2, 2) cpu() float32 [[[0., 1.], [2., 3.], ], [[4., 5.], [6., 7.], ], ] jshell> array.trace(1,1,2); ND: (2) cpu() float32 [1., 5.]
- 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
default NDList split(long sections)
Splits thisNDArray
into multiple subNDArray
s 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.]
- Parameters:
sections
- thisNDArray
will be divided into N (sections) equalNDArray
- Returns:
- an
NDList
with size(axis)NDArray
s withShape
this.shape.remove(axis)
- See Also:
split(long, int)
-
split
default NDList split(long[] indices)
Splits thisNDArray
into multiple sub-NDArray
s 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.]
- Parameters:
indices
- the entries indicate where along axis thisNDArray
is split. If an index exceeds the dimension of thisNDArray
along axis, an empty sub-NDArray
is returned correspondingly.- Returns:
- an NDList with size(axis)
NDArray
s withShape
this.shape.remove(axis)
- See Also:
split(long[], int)
-
split
default NDList split(long sections, int axis)
Splits thisNDArray
into multiple subNDArray
s given sections along the given axis.Examples
jshell> NDArray array = manager.arange(18f).reshape(2, 9); jshell> array; ND: (2, 9) cpu() float32 [[ 0., 1., 2., 3., 4., 5., 6., 7., 8.], [ 9., 10., 11., 12., 13., 14., 15., 16., 17.], ] jshell> array.split(3, 1).forEach(System.out::println); ND: (2, 3) cpu() float32 [[ 0., 1., 2.], [ 9., 10., 11.], ] ND: (2, 3) cpu() float32 [[ 3., 4., 5.], [12., 13., 14.], ] ND: (2, 3) cpu() float32 [[ 6., 7., 8.], [15., 16., 17.], ]
- Parameters:
sections
- thisNDArray
will be divided into N (sections) equal arrays along axisaxis
- the axis to split along- Returns:
- an
NDList
with numOutputsNDArray
s withShape
(this.shape.axis /= axis)
- Throws:
java.lang.IllegalArgumentException
- thrown if the numOutputs does not equally divide the given axis
-
split
NDList split(long[] indices, int axis)
Splits thisNDArray
into multiple sub-NDArray
s given indices along given axis.Examples
jshell> NDArray array = manager.arange(18f).reshape(2, 9); jshell> array; ND: (2, 9) cpu() float32 [[ 0., 1., 2., 3., 4., 5., 6., 7., 8.], [ 9., 10., 11., 12., 13., 14., 15., 16., 17.], ] jshell> array.split(new int[] {2,4,5}, 1).forEach(System.out::println); ND: (2, 2) cpu() float32 [[ 0., 1.], [ 9., 10.], ] ND: (2, 2) cpu() float32 [[ 2., 3.], [11., 12.], ] ND: (2, 1) cpu() float32 [[ 4.], [13.], ] ND: (2, 4) cpu() float32 [[ 5., 6., 7., 8.], [14., 15., 16., 17.], ]
- Parameters:
indices
- the entries indicate where along axis thisNDArray
is split. If an index exceeds the dimension of thisNDArray
along axis, an empty sub-array is returned correspondinglyaxis
- the axis to split along- Returns:
- an
NDList
with numOutputsNDArray
s withShape
(this.shape.axis /= axis)
-
flatten
NDArray flatten()
Flattens thisNDArray
into a 1-DNDArray
in row-major order.To flatten in column-major order, first transpose this
NDArray
Examples
jshell> NDArray array = manager.create(new float[]{1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array.flatten(); ND: (4) cpu() float32 [1., 2., 3., 4.]
- Returns:
- a 1-D
NDArray
of equal size
-
reshape
default NDArray reshape(long... newShape)
Reshapes thisNDArray
to 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:
java.lang.IllegalArgumentException
- thrown if the givenShape
does not match the size of the current shape
-
reshape
NDArray reshape(Shape shape)
Reshapes thisNDArray
to the givenShape
.You can reshape it to match another NDArray by calling
a.reshape(b.getShape())
Examples
jshell> NDArray array = manager.arange(6f); jshell> array; ND: (6) cpu() float32 [0., 1., 2., 3., 4., 5.] jshell> array.reshape(new Shape(2, 3)); ND: (2, 3) cpu() float32 [[0., 1., 2.], [3., 4., 5.], ]
-
expandDims
NDArray expandDims(int axis)
Expands theShape
of aNDArray
.Inserts a new axis that will appear at the axis position in the expanded
NDArray
shape.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array; ND: (2) cpu() float32 [1., 2.] jshell> array.expandDims(0); ND: (1, 2) cpu() float32 [[1., 2.], ] jshell> array.expandDims(1); ND: (2, 1) cpu() float32 [[1.], [2.], ]
- 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
default NDArray squeeze()
Removes all singleton dimensions from thisNDArray
Shape
.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
NDArray
of same size and data without singleton dimensions
-
squeeze
default NDArray squeeze(int axis)
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
NDArray
of same size and data without the axis at part of the shape - Throws:
java.lang.IllegalArgumentException
- thrown if the given axis is not a singleton dimension
-
squeeze
NDArray squeeze(int[] axes)
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
NDArray
of same size and data without the axes at part of the shape - Throws:
java.lang.IllegalArgumentException
- thrown if any of the given axes are not a singleton dimension
-
stack
default NDArray stack(NDArray array)
Joins aNDArray
along 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 inputNDArray
which must have the sameShape
as thisNDArray
- Returns:
- the result
NDArray
. The stackedNDArray
has one more dimension than the inputNDArray
.
-
stack
default NDArray stack(NDArray array, int axis)
Joins aNDArray
along 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 inputNDArray
which must have the sameShape
as thisNDArray
axis
- the axis in the resultNDArray
along which the inputNDArray
are stacked- Returns:
- the result
NDArray
. The stackedNDArray
has one more dimension than the inputNDArray
.
-
concat
default NDArray concat(NDArray array)
Joins aNDArray
along 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
- aNDArray
which have the sameShape
as thisNDArray
, except in the dimension corresponding to axis- Returns:
- the concatenated
NDArray
-
concat
default NDArray concat(NDArray array, int axis)
Joins aNDArray
along 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
- aNDArray
which have the sameShape
as thisNDArray
, except in the dimension corresponding to axisaxis
- the axis along which thisNDArray
will be joined- Returns:
- the concatenated
NDArray
-
logicalAnd
NDArray logicalAnd(NDArray other)
Returns the truth value of thisNDArray
AND the otherNDArray
element-wise.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new boolean[] {true}); jshell> NDArray array2 = manager.create(new boolean[] {false}); jshell> array1.logicalAnd(array2); ND: (1) cpu() boolean [false] jshell> array1 = manager.create(new boolean[] {true, false}); jshell> array2 = manager.create(new boolean[] {false, false}); jshell> array1.logicalAnd(array2); ND: (2) cpu() boolean [false, false]
jshell> NDArray array = manager.arange(5f); jshell> array.gt(1).logicalAnd(array.lt(4)); ND: (5) cpu() boolean [false, false, true, true, false]
- Parameters:
other
- the otherNDArray
to operate on- Returns:
- the boolean
NDArray
of the logical AND operation applied to the elements of thisNDArray
and the otherNDArray
-
logicalOr
NDArray logicalOr(NDArray other)
Computes the truth value of thisNDArray
OR the otherNDArray
element-wise.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new boolean[] {true}); jshell> NDArray array2 = manager.create(new boolean[] {false}); jshell> array1.logicalOr(array2); ND: (1) cpu() boolean [ true] jshell> array1 = manager.create(new boolean[] {true, false}); jshell> array2 = manager.create(new boolean[] {false, false}); jshell> array1.logicalOr(array2); ND: (2) cpu() boolean [ true, false]
jshell> NDArray array = manager.arange(5f); jshell> array.lt(1).logicalOr(array.gt(3)); ND: (5) cpu() boolean [ true, false, false, false, true]
- Parameters:
other
- the otherNDArray
to operate on- Returns:
- the boolean
NDArray
of the logical OR operation applied to the elements of thisNDArray
and the otherNDArray
-
logicalXor
NDArray logicalXor(NDArray other)
Computes the truth value of thisNDArray
XOR the otherNDArray
element-wise.The shapes of this
NDArray
and the otherNDArray
must be broadcastable.Examples
jshell> NDArray array = manager.create(new boolean[] {true}); jshell> array1.logicalXor(array2); ND: (1) cpu() boolean [ true] jshell> array1 = manager.create(new boolean[] {true, false}); jshell> array2 = manager.create(new boolean[] {false, false}); jshell> array1.logicalXor(array2); ND: (2) cpu() boolean [ true, false]
jshell> NDArray array = manager.arange(5f); jshell> array.lt(1).logicalXor(array.gt(3)); ND: (5) cpu() boolean [ true, false, false, false, true]
- Parameters:
other
- the otherNDArray
to operate on- Returns:
- the boolean
NDArray
of the logical XOR operation applied to the elements of thisNDArray
and the otherNDArray
-
logicalNot
NDArray logicalNot()
Computes the truth value of NOT thisNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new boolean[] {true}); jshell> array.logicalNot(); ND: (1) cpu() boolean [ false]
jshell> NDArray array = manager.arange(5f); jshell> array.lt(1).logicalNot(); ND: (5) cpu() boolean [false, true, true, true, true]
- Returns:
- the boolean
NDArray
-
argSort
default NDArray argSort()
Returns the indices that would sort thisNDArray
.Perform an indirect sort along the given axis. It returns a
NDArray
of indices of the sameShape
as thisNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {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
NDArray
of indices corresponding to elements in thisNDArray
on the axis, the output DataType is alwaysDataType.INT64
- See Also:
argSort(int, boolean)
-
argSort
default NDArray argSort(int axis)
Returns the indices that would sort thisNDArray
given the axis.Perform an indirect sort along the given axis. It returns a
NDArray
of indices of the sameShape
as thisNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {0f, 3f, 2f, 2f}, new Shape(2, 2)); jshell> array.argSort(0); 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
NDArray
of indices corresponding to elements in thisNDArray
on the axis, the output DataType is alwaysDataType.INT64
- See Also:
argSort(int, boolean)
-
argSort
NDArray argSort(int axis, boolean ascending)
Returns the indices that would sort thisNDArray
given the axis.Perform an indirect sort along the given axis. It returns a
NDArray
of indices of the sameShape
as thisNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {0f, 3f, 2f, 2f}, new Shape(2, 2)); jshell> array.argSort(0, false); ND: (2, 2) cpu() int64 [[ 1, 0], [ 0, 1], ]
- Parameters:
axis
- the axis to sort alongascending
- whether to sort ascending- Returns:
- a
NDArray
of indices corresponding to elements in thisNDArray
on the axis, the output DataType is alwaysDataType.INT64
-
sort
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
NDArray sort(int axis)
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
NDArray softmax(int axis)
Applies the softmax function along the given axis.- Parameters:
axis
- the axis along which to apply- Returns:
- the result
NDArray
- See Also:
- softmax,
softmax(int)
-
logSoftmax
NDArray logSoftmax(int axis)
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
NDArray cumSum(int axis)
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
-
intern
void intern(NDArray replaced)
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 booleanNDArray
with valuetrue
where thisNDArray
's entries are infinite, orfalse
where they are not infinite.- Returns:
- the boolean
NDArray
with valuetrue
if thisNDArray
's entries are infinite
-
isNaN
NDArray isNaN()
Returns the booleanNDArray
with valuetrue
where thisNDArray
's entries are NaN, orfalse
where they are not NaN.Examples
jshell> NDArray array = manager.create(new float[] {Float.POSITIVE_INFINITY, 0, Float.NaN}); jshell> array.isNaN(); ND: (3) cpu() boolean [false, false, true]
- Returns:
- the boolean
NDArray
with valuetrue
if thisNDArray
'sNDArray
are NaN
-
tile
NDArray tile(long repeats)
Constructs aNDArray
by repeating thisNDArray
the number of times given repeats.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f}); jshell> array.tile(2); ND: (6) cpu() float32 [0., 1., 2., 0., 1., 2.]
- Parameters:
repeats
- the number of times to repeat for each dimension- Returns:
- a NDArray that has been tiled
-
tile
NDArray tile(int axis, long repeats)
Constructs aNDArray
by repeating thisNDArray
the number of times given by repeats along given axis.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f}); jshell> array.tile(1, 2); ND: (1, 6) cpu() float32 [[0., 1., 2., 0., 1., 2.], ]
- Parameters:
axis
- the axis to repeatrepeats
- the number of times to repeat for each axis- Returns:
- a
NDArray
that has been tiled - Throws:
java.lang.IllegalArgumentException
- thrown for invalid axis
-
tile
NDArray tile(long[] repeats)
Constructs aNDArray
by repeating thisNDArray
the number of times given by repeats.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f}); jshell> array.tile(new long[] {2, 2}); ND: (2, 6) cpu() float32 [[0., 1., 2., 0., 1., 2.], [0., 1., 2., 0., 1., 2.], ]
- Parameters:
repeats
- the number of times to repeat along each axis- Returns:
- a
NDArray
that has been tiled
-
tile
NDArray tile(Shape desiredShape)
Constructs aNDArray
by repeating thisNDArray
the number of times to match the desired shape.If the desired
Shape
has fewer dimensions than thisNDArray
, it will tile against the last axis.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f}); jshell> array.tile(new Shape(6)); ND: (6) cpu() float32 [0., 1., 2., 0., 1., 2.]
- Parameters:
desiredShape
- theShape
that should be converted to- Returns:
- a
NDArray
that has been tiled
-
repeat
NDArray repeat(long repeats)
Repeats element of thisNDArray
the number of times given repeats.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f}); jshell> array.repeat(2); ND: (6) cpu() float32 [0., 0., 1., 1., 2., 2.]
- Parameters:
repeats
- the number of times to repeat for each axis- Returns:
- an
NDArray
that has been repeated
-
repeat
NDArray repeat(int axis, long repeats)
Repeats element of thisNDArray
the number of times given repeats along given axis.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f, 3f}, new Shape(2, 2)); jshell> array.repeat(1, 2); ND: (6) cpu() float32 [0., 0., 1., 1., 2., 2.]
- Parameters:
axis
- the axis to repeatrepeats
- the number of times to repeat for each axis- Returns:
- an
NDArray
that has been repeated - Throws:
java.lang.IllegalArgumentException
- thrown for invalid axis
-
repeat
NDArray repeat(long[] repeats)
Repeats element of thisNDArray
the number of times given repeats along each axis.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f, 3f}, new Shape(2, 2)); jshell> array.repeat(new long[] {2, 2}); ND: (12) cpu() float32 [0., 0., 0., 0., 1., 1., 1., 1., 2., 2., 2., 2.]
- Parameters:
repeats
- the number of times to repeat along each axis- Returns:
- a
NDArray
that has been repeated
-
repeat
NDArray repeat(Shape desiredShape)
Repeats element of thisNDArray
to match the desired shape.If the desired
Shape
has fewer dimensions that the array, it will repeat against the last axis.Examples
jshell> NDArray array = manager.create(new float[] {0f, 1f, 2f, 3f}, new Shape(2, 2)); jshell> array.repeat(new Shape(4, 4)); ND: (4, 4) cpu() float32 [[0., 0., 1., 1.], [0., 0., 1., 1.], [2., 2., 3., 3.], [2., 2., 3., 3.], ]
- Parameters:
desiredShape
- theShape
that should be converted to- Returns:
- an
NDArray
that has been repeated
-
dot
NDArray dot(NDArray other)
Dot product of thisNDArray
and the otherNDArray
.- If both this
NDArray
and the otherNDArray
are 1-DNDArray
s, it is inner product of vectors (without complex conjugation). - If both this
NDArray
and the otherNDArray
are 2-DNDArray
s, it is matrix multiplication. - If either this
NDArray
or the otherNDArray
is 0-DNDArray
(scalar), it is equivalent to mul. - If this
NDArray
is N-DNDArray
and the otherNDArray
is 1-DNDArray
, it is a sum product over the last axis of those. - If this
NDArray
is N-DNDArray
and the otherNDArray
is M-DNDArray
(where M>=2), it is a sum product over the last axis of thisNDArray
and the second-to-last axis of the otherNDArray
Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f, 3f}); jshell> NDArray array2 = manager.create(new float[] {4f, 5f, 6f}); jshell> array1.dot(array2); // inner product ND: () cpu() float32 32. jshell> array1 = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array2 = manager.create(new float[] {5f, 6f, 7f, 8f}, new Shape(2, 2)); jshell> array1.dot(array2); // matrix multiplication ND: (2, 2) cpu() float32 [[19., 22.], [43., 50.], ] jshell> array1 = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array2 = manager.create(5f); jshell> array1.dot(array2); ND: (2, 2) cpu() float32 [[ 5., 10.], [15., 20.], ] jshell> array1 = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> array2 = manager.create(new float[] {1f, 2f}); jshell> array1.dot(array2); ND: (2) cpu() float32 [ 5., 11.] jshell> array1 = manager.create(new float[] {1f, 2f, 3f, 4f, 5f, 6f, 7f, 8f}, new Shape(2, 2, 2)); jshell> array2 = manager.create(new float[] {1f, 2f, 3f ,4f}, new Shape(2, 2)); jshell> array1.dot(array2); ND: (2, 2, 2) cpu() float32 [[[ 7., 10.], [15., 22.], ], [[23., 34.], [31., 46.], ], ]
- Parameters:
other
- the otherNDArray
to perform dot product with- Returns:
- the result
NDArray
- If both this
-
matMul
NDArray matMul(NDArray other)
Product matrix of thisNDArray
and the otherNDArray
.The behavior depends on the arguments in the following way.
- If both this
NDArray
and the otherNDArray
are 2-DNDArray
s, they are multiplied like conventional matrices - If either this
NDArray
or the otherNDArray
is N-DNDArray
, N > 2 , it is treated as a stack of matrices residing in the last two indexes and broadcast accordingly. - If this
NDArray
is 1-DNDArray
, it is promoted to a matrix by prepending a 1 to its dimensions. After matrix multiplication the prepended 1 is removed. - If other
NDArray
is 1-DNDArray
, it is promoted to a matrix by appending a 1 to its dimensions. After matrix multiplication the appended 1 is removed.
Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 0f, 0f, 1f}, new Shape(2, 2)); jshell> NDArray array2 = manager.create(new float[] {4f, 1f, 2f, 2f}, new Shape(2, 2)); jshell> array1.matMul(array2); // for 2-D arrays, it is the matrix product ND: (2, 2) cpu() float32 [[4., 1.], [2., 2.], ] jshell> array1 = manager.create(new float[] {1f, 0f, 0f, 1f}, new Shape(2, 2)); jshell> array2 = manager.create(new float[] {1f, 2f}); jshell> array1.matMul(array2); ND: (2) cpu() float32 [1., 2.] jshell> array1 = manager.create(new float[] {1f, 0f, 0f, 1f}, new Shape(2, 2)); jshell> array2 = manager.create(new float[] {1f, 2f}); jshell> array1.matMul(array2); ND: (2) cpu() float32 [1., 2.] jshell> array1 = manager.arange(2f * 2f * 4f).reshape(2, 2, 4); jshell> array2 = manager.arange(2f * 2f * 4f).reshape(2, 4, 2); jshell> array1.matMul(array2).get("0, 1, 1"); ND: () cpu() float32 98.
- Parameters:
other
- the otherNDArray
to perform matrix product with- Returns:
- the result
NDArray
- If both this
-
clip
NDArray clip(java.lang.Number min, java.lang.Number max)
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
NDArray
with the elements of thisNDArray
, but where values < min are replaced with min, and those > max with max
-
swapAxes
default NDArray swapAxes(int axis1, int axis2)
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
NDArray flip(int... axes)
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 thisNDArray
with axes transposed.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f ,3f, 4f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2.], [3., 4.], ] jshell> array.transpose(); ND: (2, 2) cpu() float32 [[1., 3.], [2., 4.], ]
- Returns:
- the newly permuted array
-
transpose
NDArray transpose(int... axes)
Returns thisNDArray
with given axes transposed.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f ,3f, 4f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2.], [3., 4.], ] jshell> array.transpose(1, 0); ND: (2, 2) cpu() float32 [[1., 3.], [2., 4.], ] jshell> array = manager.arange(8f).reshape(2, 2, 2); jshell> array; ND: (2, 2, 2) cpu() float32 [[[0., 1.], [2., 3.], ], [[4., 5.], [6., 7.], ], ] jshell> array.transpose(1, 0, 2); ND: (2, 2, 2) cpu() float32 [[[0., 1.], [4., 5.], ], [[2., 3.], [6., 7.], ], ]
- Parameters:
axes
- the axes to swap to- Returns:
- the transposed
NDArray
- Throws:
java.lang.IllegalArgumentException
- thrown when passing a axis that is greater than the actual number of dimensions
-
broadcast
NDArray broadcast(Shape shape)
Broadcasts thisNDArray
to be the given shape.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f ,3f, 4f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2.], [3., 4.], ] jshell> array.broadcast(new Shape(2, 2, 2)); ND: (2, 2, 2) cpu() float32 [[[1., 2.], [3., 4.], ], [[1., 2.], [3., 4.], ], ]
- Parameters:
shape
- the newShape
of thisNDArray
- Returns:
- the broadcasted
NDArray
-
broadcast
default NDArray broadcast(long... shape)
Broadcasts thisNDArray
to be the given shape.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f ,3f, 4f}, new Shape(2, 2)); jshell> array; ND: (2, 2) cpu() float32 [[1., 2.], [3., 4.], ] jshell> array.broadcast(2, 2, 2); ND: (2, 2, 2) cpu() float32 [[[1., 2.], [3., 4.], ], [[1., 2.], [3., 4.], ], ]
- Parameters:
shape
- the newShape
of 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
NDArray
containing indices
-
argMax
NDArray argMax(int axis)
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
NDArray
containing 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
NDArray
containing indices
-
argMin
NDArray argMin(int axis)
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
NDArray
containing indices
-
percentile
NDArray percentile(java.lang.Number percentile)
Returns percentile for thisNDArray
.- Parameters:
percentile
- the target percentile in range of 0..100- Returns:
- the result
NDArray
-
percentile
NDArray percentile(java.lang.Number percentile, int[] axes)
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
NDArray
NDArray
-
median
NDArray median()
Returns median value for thisNDArray
.- Returns:
- the median
NDArray
-
median
NDArray median(int[] axes)
Returns median value along given axes.- Parameters:
axes
- the axes along which to perform the median operation- Returns:
- the median
NDArray
along the specified axes
-
toDense
NDArray toDense()
Returns a dense representation of the sparseNDArray
.- Returns:
- the result
NDArray
-
toSparse
NDArray toSparse(SparseFormat fmt)
Returns a sparse representation ofNDArray
.- Parameters:
fmt
- theSparseFormat
of 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
NDArray
with last dimension containing all dimension of indices.Examples
jshell> NDArray array = manager.create(new float[] {1f, 1f, 1f, 0f, 1f}); jshell> array.nonzero(); ND: (4, 1) cpu() int64 [[ 0], [ 1], [ 2], [ 4], ] jshell> array = manager.create(new float[] {3f, 0f, 0f, 0f, 4f, 0f, 5f, 6f, 0f}).reshape(3, 3); jshell> array; ND: (3, 3) cpu() float32 [[3., 0., 0.], [0., 4., 0.], [5., 6., 0.], ] jshell> array.nonzero(); ND: (4, 2) cpu() int64 [[ 0, 0], [ 1, 1], [ 2, 0], [ 2, 1], ]
- Returns:
- the indices of the elements that are non-zero
-
isEmpty
default boolean isEmpty()
Returnstrue
if thisNDArray
is 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:
true
if this NDArray is empty
-
all
default NDArray all()
Returnstrue
if all elements within thisNDArray
are 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:
true
if all elements within thisNDArray
are non-zero ortrue
-
any
default NDArray any()
Returnstrue
if any of the elements within thisNDArray
are 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:
true
if any of the elements within thisNDArray
are non-zero ortrue
-
none
default NDArray none()
Returnstrue
if none of the elements within thisNDArray
are 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:
true
if none of the elements within thisNDArray
are non-zero ortrue
-
countNonzero
default NDArray 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
default NDArray countNonzero(int axis)
Counts the number of non-zero values in thisNDArray
along 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
NDArray
along 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
-
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
-
toDebugString
default java.lang.String toDebugString()
Runs the debug string representation of thisNDArray
.- Returns:
- the debug string representation of this
NDArray
-
toDebugString
default java.lang.String toDebugString(int maxSize, int maxDepth, int maxRows, int maxColumns)
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 out- Returns:
- the debug string representation of this
NDArray
-
close
void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfaceNDResource
-
norm
default NDArray 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
default NDArray norm(int[] axes)
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
NDArray norm(boolean keepDims)
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
default NDArray norm(int[] axes, boolean keepDims)
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
NDArray norm(int ord, int[] axes, boolean keepDims)
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
default NDArray oneHot(int depth)
Returns a one-hotNDArray
.- The locations represented by indices take value 1, while all other locations take value 0.
- If the input
NDArray
is rank N, the output will have rank N+1. The new axis is appended at the end. - If
NDArray
is a scalar the output shape will be a vector of length depth. - If
NDArray
is a vector of length features, the output shape will be features x depth. - If
NDArray
is a matrix with shape [batch, features], the output shape will be batch x features x depth.
Examples
jshell> NDArray array = manager.create(new int[] {1, 0, 2, 0}); jshell> array.oneHot(3); 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:
- Classification-problems
-
oneHot
default NDArray oneHot(int depth, DataType dataType)
Returns a one-hotNDArray
.- The locations represented by indices take value 1, while all other locations take value 0.
- If the input
NDArray
is rank N, the output will have rank N+1. The new axis is appended at the end. - If
NDArray
is a scalar the output shape will be a vector of length depth. - If
NDArray
is a vector of length features, the output shape will be features x depth. - If
NDArray
is a matrix with shape [batch, features], the output shape will be batch x features x depth.
Examples
jshell> NDArray array = manager.create(new int[] {1, 0, 2, 0}); jshell> array.oneHot(3); 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:
- Classification-problems
-
oneHot
NDArray oneHot(int depth, float onValue, float offValue, DataType dataType)
Returns a one-hotNDArray
.- The locations represented by indices take value onValue, while all other locations take value offValue.
- If the input
NDArray
is rank N, the output will have rank N+1. The new axis is appended at the end. - If
NDArray
is a scalar the output shape will be a vector of length depth. - If
NDArray
is a vector of length features, the output shape will be features x depth. - If
NDArray
is a matrix with shape [batch, features], the output shape will be batch x features x depth.
Examples
jshell> NDArray array = manager.create(new int[] {1, 0, 2, 0}); jshell> array.oneHot(3, 8f, 1f, array.getDataType()); ND: (4, 3) cpu() int32 [[ 1, 8, 1], [ 8, 1, 1], [ 1, 1, 8], [ 8, 1, 1], ]
- 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:
- Classification-problems
-
batchDot
NDArray batchDot(NDArray other)
Batchwise product of thisNDArray
and the otherNDArray
.- batchDot is used to compute dot product of x and y when x and y are data in batch, namely N-D (N greater or equal to 3) arrays in shape of (B0, …, B_i, :, :). For example, given x with shape (B_0, …, B_i, N, M) and y with shape (B_0, …, B_i, M, K), the result array will have shape (B_0, …, B_i, N, K), which is computed by: batch_dot(x,y)[b_0, ..., b_i, :, :] = dot(x[b_0, ..., b_i, :, :], y[b_0, ..., b_i, :, :])
Examples
jshell> NDArray array1 = manager.ones(new Shape(2, 1, 4)); jshell> NDArray array2 = manager.ones(new Shape(2, 4, 6)); jshell> array1.batchDot(array2); ND: (2, 1, 6) cpu() float32 [[[4., 4., 4., 4., 4., 4.], ], [[4., 4., 4., 4., 4., 4.], ], ]
- Parameters:
other
- the otherNDArray
to perform batch dot product with- Returns:
- the result
NDArray
-
-