Class NDArrays
- java.lang.Object
-
- ai.djl.ndarray.NDArrays
-
public final class NDArrays extends java.lang.Object
This class contains various methods for manipulating NDArrays.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static NDArray
add(NDArray... arrays)
static NDArray
add(NDArray a, java.lang.Number n)
Adds a number to theNDArray
element-wise.static NDArray
add(java.lang.Number n, NDArray a)
Adds aNDArray
to a number element-wise.static NDArray
addi(NDArray... arrays)
Adds all of theNDArray
s together element-wise in place.static NDArray
addi(NDArray a, java.lang.Number n)
Adds a number to theNDArray
element-wise in place.static NDArray
addi(java.lang.Number n, NDArray a)
Adds aNDArray
to a number element-wise in place.static boolean
allClose(NDArray a, NDArray b)
Returnstrue
if twoNDArray
are element-wise equal within a tolerance.static boolean
allClose(NDArray a, NDArray b, double rtol, double atol, boolean equalNan)
Returnstrue
if twoNDArray
are element-wise equal within a tolerance.static NDArray
booleanMask(NDArray data, NDArray index)
static NDArray
booleanMask(NDArray data, NDArray index, int axis)
static NDArray
concat(NDList arrays)
Joins aNDList
along the first axis.static NDArray
concat(NDList arrays, int axis)
Joins aNDList
along an existing axis.static boolean
contentEquals(NDArray a, NDArray b)
static boolean
contentEquals(NDArray a, java.lang.Number n)
static NDArray
div(NDArray a, NDArray b)
static NDArray
div(NDArray a, java.lang.Number n)
Divides theNDArray
by a number element-wise.static NDArray
div(java.lang.Number n, NDArray a)
Divides a number by aNDArray
element-wise.static NDArray
divi(NDArray a, NDArray b)
static NDArray
divi(NDArray a, java.lang.Number n)
Divides a number by aNDArray
element-wise in place.static NDArray
divi(java.lang.Number n, NDArray a)
Divides a number by aNDArray
element-wise.static NDArray
dot(NDArray a, NDArray b)
static NDArray
eq(NDArray a, NDArray b)
Returns the booleanNDArray
for element-wise "Equals" comparison.static NDArray
eq(NDArray a, java.lang.Number n)
Returns the booleanNDArray
for element-wise "Equals" comparison.static NDArray
eq(java.lang.Number n, NDArray a)
Returns the booleanNDArray
for element-wise "Equals" comparison.static NDArray
erfinv(NDArray input)
Returns element-wise inverse gauss error function of the inputNDArray
.static NDArray
gt(NDArray a, NDArray b)
Returns the booleanNDArray
for element-wise "Greater Than" comparison.static NDArray
gt(NDArray a, java.lang.Number n)
Returns the booleanNDArray
for element-wise "Greater Than" comparison.static NDArray
gt(java.lang.Number n, NDArray a)
Returns the booleanNDArray
for element-wise "Greater Than" comparison.static NDArray
gte(NDArray a, NDArray b)
Returns the booleanNDArray
for element-wise "Greater or equals" comparison.static NDArray
gte(NDArray a, java.lang.Number n)
Returns the booleanNDArray
for element-wise "Greater or equals" comparison.static NDArray
gte(java.lang.Number n, NDArray a)
Returns the booleanNDArray
for element-wise "Greater or equals" comparison.static NDArray
logicalAnd(NDArray a, NDArray b)
static NDArray
logicalOr(NDArray a, NDArray b)
static NDArray
logicalXor(NDArray a, NDArray b)
static NDArray
lt(NDArray a, NDArray b)
Returns the booleanNDArray
for element-wise "Less" comparison.static NDArray
lt(NDArray a, java.lang.Number n)
Returns the booleanNDArray
for element-wise "Less" comparison.static NDArray
lt(java.lang.Number n, NDArray a)
Returns the booleanNDArray
for element-wise "Less" comparison.static NDArray
lte(NDArray a, NDArray b)
Returns the booleanNDArray
for element-wise "Less or equals" comparison.static NDArray
lte(NDArray a, java.lang.Number n)
Returns the booleanNDArray
for element-wise "Less or equals" comparison.static NDArray
lte(java.lang.Number n, NDArray a)
Returns the booleanNDArray
for element-wise "Less or equals" comparison.static NDArray
matMul(NDArray a, NDArray b)
Product matrix of thisNDArray
and the otherNDArray
.static NDArray
maximum(NDArray a, NDArray b)
static NDArray
maximum(NDArray a, java.lang.Number n)
Returns the maximum of aNDArray
and a number element-wise.static NDArray
maximum(java.lang.Number n, NDArray a)
Returns the maximum of a number and aNDArray
element-wise.static NDArray
minimum(NDArray a, NDArray b)
static NDArray
minimum(NDArray a, java.lang.Number n)
Returns the minimum of aNDArray
and a number element-wise.static NDArray
minimum(java.lang.Number n, NDArray a)
Returns the minimum of a number and aNDArray
element-wise.static NDArray
mod(NDArray a, NDArray b)
Returns element-wise remainder of division.static NDArray
mod(NDArray a, java.lang.Number n)
Returns element-wise remainder of division.static NDArray
mod(java.lang.Number n, NDArray a)
Returns element-wise remainder of division.static NDArray
modi(NDArray a, NDArray b)
Returns element-wise remainder of division.static NDArray
modi(NDArray a, java.lang.Number n)
Returns element-wise remainder of division in place.static NDArray
modi(java.lang.Number n, NDArray a)
Returns element-wise remainder of division in place.static NDArray
mul(NDArray... arrays)
Multiplies all of theNDArray
s together element-wise.static NDArray
mul(NDArray a, java.lang.Number n)
Multiplies theNDArray
by a number element-wise.static NDArray
mul(java.lang.Number n, NDArray a)
Multiplies a number by aNDArray
element-wise.static NDArray
muli(NDArray... arrays)
Multiplies all of theNDArray
s together element-wise in place.static NDArray
muli(NDArray a, java.lang.Number n)
Multiplies theNDArray
by a number element-wise in place.static NDArray
muli(java.lang.Number n, NDArray a)
Multiplies a number by aNDArray
element-wise.static NDArray
neq(NDArray a, NDArray b)
Returns the booleanNDArray
for element-wise "Not equals" comparison.static NDArray
neq(NDArray a, java.lang.Number n)
Returns the booleanNDArray
for element-wise "Not equals" comparison.static NDArray
neq(java.lang.Number n, NDArray a)
Returns the booleanNDArray
for element-wise "Not equals" comparison.static NDArray
pow(NDArray a, NDArray b)
static NDArray
pow(NDArray a, java.lang.Number n)
Takes the power of theNDArray
with a number element-wise.static NDArray
pow(java.lang.Number n, NDArray a)
Takes the power of a number with aNDArray
element-wise.static NDArray
powi(NDArray a, NDArray b)
static NDArray
powi(NDArray a, java.lang.Number n)
Takes the power of theNDArray
with a number element-wise in place.static NDArray
powi(java.lang.Number n, NDArray a)
Takes the power of a number with aNDArray
element-wise in place.static NDArray
sequenceMask(NDArray data, NDArray sequenceLength)
static NDArray
sequenceMask(NDArray data, NDArray sequenceLength, float value)
static boolean
shapeEquals(NDArray a, NDArray b)
Checks 2NDArray
s for equal shapes.static NDArray
stack(NDList arrays)
static NDArray
stack(NDList arrays, int axis)
static NDArray
sub(NDArray a, NDArray b)
static NDArray
sub(NDArray a, java.lang.Number n)
Subtracts a number from theNDArray
element-wise.static NDArray
sub(java.lang.Number n, NDArray a)
Subtracts aNDArray
from a number element-wise.static NDArray
subi(NDArray a, NDArray b)
static NDArray
subi(NDArray a, java.lang.Number n)
Subtracts a number from theNDArray
element-wise in place.static NDArray
subi(java.lang.Number n, NDArray a)
Subtracts aNDArray
from a number element-wise in place.static NDArray
where(NDArray condition, NDArray a, NDArray b)
-
-
-
Method Detail
-
contentEquals
public static boolean contentEquals(NDArray a, java.lang.Number n)
Returnstrue
if all elements inNDArray
a are equal toNDArray
b.Examples
jshell> NDArray array = manager.ones(new Shape(3)); jshell> NDArrays.contentEquals(array, 1); // return true instead of boolean NDArray true
- Parameters:
a
- theNDArray
to comparen
- the number to compare- Returns:
- the boolean result
-
contentEquals
public static boolean contentEquals(NDArray a, NDArray b)
Returnstrue
if all elements inNDArray
a are equal toNDArray
b.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> NDArrays.contentEquals(array1, array2); // return true instead of boolean NDArray true
-
shapeEquals
public static boolean shapeEquals(NDArray a, NDArray b)
Checks 2NDArray
s for equal shapes.Shapes are considered equal if:
Examples
jshell> NDArray array1 = manager.ones(new Shape(1, 2, 3)); jshell> NDArray array2 = manager.create(new Shape(1, 2, 3)); jshell> NDArrays.shapeEquals(array1, array2); // return true instead of boolean NDArray true
-
allClose
public static boolean allClose(NDArray a, NDArray b)
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> NDArrays.allClose(array1, 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> NDArrays.allClose(array1, array2); // return true instead of boolean NDArray true
-
allClose
public static boolean allClose(NDArray a, NDArray b, 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> NDArrays.allClose(array1, 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> NDArrays.allClose(array1, 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> NDArrays.allClose(array1, array2, 1e-05, 1e-08, true); // return true instead of boolean NDArray true
- Parameters:
a
- theNDArray
to compare withb
- 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
public static NDArray eq(NDArray a, java.lang.Number n)
Returns the booleanNDArray
for element-wise "Equals" comparison.Examples
jshell> NDArray array = manager.ones(new Shape(1)); jshell> NDArrays.eq(array, 1); ND: (1) cpu() boolean [ true]
-
eq
public static NDArray eq(java.lang.Number n, NDArray a)
Returns the booleanNDArray
for element-wise "Equals" comparison.Examples
jshell> NDArray array = manager.ones(new Shape(1)); jshell> NDArrays.eq(1, array); ND: (1) cpu() boolean [ true]
-
eq
public static NDArray eq(NDArray a, NDArray b)
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> NDArrays.eq(array1, array2); ND: (3) cpu() boolean [ true, true, false]
-
neq
public static NDArray neq(NDArray a, java.lang.Number n)
Returns the booleanNDArray
for element-wise "Not equals" comparison.Examples
jshell> NDArray array = manager.arange(4f).reshape(2, 2); jshell> NDArrays.neq(array, 1); ND: (2, 2) cpu() boolean [[ true, false], [ true, true], ]
-
neq
public static NDArray neq(java.lang.Number n, NDArray a)
Returns the booleanNDArray
for element-wise "Not equals" comparison.Examples
jshell> NDArray array = manager.arange(f4).reshape(2, 2); jshell> NDArrays.neq(1, array); ND: (2, 2) cpu() boolean [[ true, false], [ true, true], ]
-
neq
public static NDArray neq(NDArray a, NDArray b)
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> NDArrays.neq(array1, 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> NDArrays.neq(array1, array2); // broadcasting ND: (2, 2) cpu() boolean [[false, true], [false, true], ]
-
gt
public static NDArray gt(NDArray a, java.lang.Number n)
Returns the booleanNDArray
for element-wise "Greater Than" comparison.Examples
jshell> NDArray array = manager.create(new float[] {4f, 2f}); jshell> NDArrays.gt(array, 2f); ND: (2) cpu() boolean [ true, false]
-
gt
public static NDArray gt(java.lang.Number n, NDArray a)
Returns the booleanNDArray
for element-wise "Greater Than" comparison.Examples
jshell> NDArray array = manager.create(new float[] {4f, 2f}); jshell> NDArrays.gt(2f, array); ND: (2) cpu() boolean [false, false]
- Parameters:
n
- the number to be compareda
- the NDArray to be compared against- Returns:
- the boolean
NDArray
for element-wise "Greater Than" comparison
-
gt
public static NDArray gt(NDArray a, NDArray b)
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> NDArrays.gt(array1, array2); ND: (2) cpu() boolean [ true, false]
-
gte
public static NDArray gte(NDArray a, java.lang.Number n)
Returns the booleanNDArray
for element-wise "Greater or equals" comparison.Examples
jshell> NDArray array = manager.create(new float[] {4f, 2f}); jshell> NDArrays.gte(array, 2); ND: (2) cpu() boolean [ true, true]
-
gte
public static NDArray gte(java.lang.Number n, NDArray a)
Returns the booleanNDArray
for element-wise "Greater or equals" comparison.Examples
jshell> NDArray array = manager.create(new float[] {4f, 2f}); jshell> NDArrays.gte(2, array); ND: (2) cpu() boolean [false, true]
-
gte
public static NDArray gte(NDArray a, NDArray b)
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> NDArrays.gte(array1, array2); ND: (2) cpu() boolean [ true, true]
-
lt
public static NDArray lt(NDArray a, java.lang.Number n)
Returns the booleanNDArray
for element-wise "Less" comparison.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.lt(array, 2f); ND: (2) cpu() boolean [ true, false]
-
lt
public static NDArray lt(java.lang.Number n, NDArray a)
Returns the booleanNDArray
for element-wise "Less" comparison.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.lt(2f, array); ND: (2) cpu() boolean [false, false]
-
lt
public static NDArray lt(NDArray a, NDArray b)
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> NDArrays.lt(array1, array2); ND: (2) cpu() boolean [ true, false]
-
lte
public static NDArray lte(NDArray a, 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> NDArrays.lte(array, 2f); ND: (2) cpu() boolean [ true, true]
-
lte
public static NDArray lte(java.lang.Number n, NDArray a)
Returns the booleanNDArray
for element-wise "Less or equals" comparison.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.lte(2f, array); ND: (2) cpu() boolean [false, true]
-
lte
public static NDArray lte(NDArray a, NDArray b)
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> NDArrays.lte(array1, array2) ND: (2) cpu() boolean [ true, true]
-
where
public static NDArray where(NDArray condition, NDArray a, NDArray b)
Returns elements chosen from theNDArray
or the otherNDArray
depending on condition.Given three
NDArray
s, condition, a, and b, returns anNDArray
with the elements from a or b, depending on whether the elements from conditionNDArray
aretrue
orfalse
. If condition has the same shape as a, each element in the outputNDArray
is from this if the corresponding element in the condition istrue
, and from other iffalse
.Note that all non-zero values are interpreted as
true
in conditionNDArray
.Examples
jshell> NDArray array = manager.arange(10f); jshell> NDArrays.where(array.lt(5), array, array.mul(10)); ND: (10) cpu() float32 [ 0., 1., 2., 3., 4., 50., 60., 70., 80., 90.] jshell> NDArray array = manager.create(new float[]{0f, 1f, 2f, 0f, 2f, 4f, 0f, 3f, 6f}, new Shape(3, 3)); jshell> NDArrays.where(array.lt(4), array, manager.create(-1f)); ND: (3, 3) cpu() float32 [[ 0., 1., 2.], [ 0., 2., -1.], [ 0., 3., -1.], ]
-
maximum
public static NDArray maximum(NDArray a, java.lang.Number n)
Returns the maximum of aNDArray
and a number element-wise.Examples
jshell> NDArray array = manager.create(new float[] {2f, 3f, 4f}); jshell> NDArrays.maximum(array, 3f); ND: (3) cpu() float32 [3., 3., 4.]
-
maximum
public static NDArray maximum(java.lang.Number n, NDArray a)
Returns the maximum of a number and aNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {2f, 3f, 4f}); jshell> NDArrays.maximum(3f, array); ND: (3) cpu() float32 [3., 3., 4.]
-
maximum
public static NDArray maximum(NDArray a, NDArray b)
Returns the maximum ofNDArray
a andNDArray
b element-wise.The shapes of
NDArray
a andNDArray
b 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> NDArrays.maximum(array1, 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> NDArrays.maximum(array1, array2); // broadcasting ND: (2, 2) cpu() float32 [[1. , 2. ], [0.5, 2. ], ]
-
minimum
public static NDArray minimum(NDArray a, java.lang.Number n)
Returns the minimum of aNDArray
and a number element-wise.Examples
jshell> NDArray array = manager.create(new float[] {2f, 3f, 4f}); jshell> NDArrays.minimum(array, 3f); ND: (3) cpu() float32 [2., 3., 3.]
-
minimum
public static NDArray minimum(java.lang.Number n, NDArray a)
Returns the minimum of a number and aNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {2f, 3f, 4f}); jshell> NDArrays.minimum(3f, array); ND: (3) cpu() float32 [2., 3., 3.]
-
minimum
public static NDArray minimum(NDArray a, NDArray b)
Returns the minimum ofNDArray
a andNDArray
b element-wise.The shapes of
NDArray
a andNDArray
b 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> NDArrays.minimum(array1, 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> NDArrays.minimum(array1, array2); // broadcasting ND: (2, 2) cpu() float32 [[0.5, 0. ], [0. , 1. ], ]
-
booleanMask
public static NDArray booleanMask(NDArray data, NDArray index)
Returns portion of theNDArray
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> NDArrays.booleanMask(array, mask); ND: (2, 2) cpu() float32 [[1., 2.], [5., 6.], ]
-
sequenceMask
public static NDArray sequenceMask(NDArray data, NDArray sequenceLength, float value)
Sets all elements of the givenNDArray
outside the sequenceNDArray
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.sequenceLength
should be an input array of positive ints of dimension [batch_size].
-
sequenceMask
public static NDArray sequenceMask(NDArray data, NDArray sequenceLength)
Sets all elements of the givenNDArray
outside the sequenceNDArray
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.sequenceLength
should be an input array of positive ints of dimension [batch_size].
-
add
public static NDArray add(NDArray a, java.lang.Number n)
Adds a number to theNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.add(array, 2f); ND: (2) cpu() float32 [3., 4.]
-
add
public static NDArray add(java.lang.Number n, NDArray a)
Adds aNDArray
to a number element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.add(2f, array); ND: (2) cpu() float32 [3., 4.]
-
sub
public static NDArray sub(NDArray a, java.lang.Number n)
Subtracts a number from theNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> array.sub(2f); ND: (2) cpu() float32 [-1., 0.]
-
sub
public static NDArray sub(java.lang.Number n, NDArray a)
Subtracts aNDArray
from a number element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.sub(3f, array); ND: (2) cpu() float32 [2., 1.]
-
sub
public static NDArray sub(NDArray a, NDArray b)
Subtracts aNDArray
from aNDArray
element-wise.The shapes of
NDArray
a andNDArray
b must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.arange(3f); jshell> NDArrays.sub(array1, array2); // broadcasting ND: (3, 3) cpu() float32 [[0., 0., 0.], [3., 3., 3.], [6., 6., 6.], ]
-
mul
public static NDArray mul(NDArray a, java.lang.Number n)
Multiplies theNDArray
by a number element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.mul(array, 3f); ND: (2) cpu() float32 [3., 6.]
- Parameters:
a
- the NDArray to be multipliedn
- the number to multiply by- Returns:
- the result
NDArray
-
mul
public static NDArray mul(java.lang.Number n, NDArray a)
Multiplies a number by aNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.mul(3f, array); ND: (2) cpu() float32 [3., 6.]
-
div
public static NDArray div(NDArray a, java.lang.Number n)
Divides theNDArray
by a number element-wise.Examples
jshell> NDArray array = manager.arange(5f); jshell> NDArrays.div(array, 4f); ND: (5) cpu() float32 [0. , 0.25, 0.5 , 0.75, 1. ]
-
div
public static NDArray div(java.lang.Number n, NDArray a)
Divides a number by aNDArray
element-wise.Examples
jshell> NDArray array = manager.arange(5f).add(1); jshell> NDArrays.div(4f, array); ND: (5) cpu() float32 [4. , 2. , 1.3333, 1. , 0.8 ]
-
div
public static NDArray div(NDArray a, NDArray b)
Divides aNDArray
by aNDArray
element-wise.The shapes of
NDArray
a andNDArray
b must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.ones(new Shape(3)).mul(10); jshell> NDArrays.div(array1, array2); // broadcasting ND: (3, 3) cpu() float32 [[0. , 0.1, 0.2], [0.3, 0.4, 0.5], [0.6, 0.7, 0.8], ]
-
mod
public static NDArray mod(NDArray a, java.lang.Number n)
Returns element-wise remainder of division.Examples
jshell> NDArray array = manager.arange(7f); jshell> NDArrays.mod(array, 5f); ND: (7) cpu() float32 [0., 1., 2., 3., 4., 0., 1.]
-
mod
public static NDArray mod(java.lang.Number n, NDArray a)
Returns element-wise remainder of division.Examples
jshell> NDArray array = manager.arange(7f).add(1); jshell> NDArrays.mod(5f, array); ND: (7) cpu() float32 [0., 1., 2., 1., 0., 5., 5.]
-
mod
public static NDArray mod(NDArray a, NDArray b)
Returns element-wise remainder of division.Examples
jshell> NDArray array1 = manager.create(new float[] {4f, 7f}); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> NDArrays.mod(array1, array2); ND: (2) cpu() float32 [0., 1.]
- Parameters:
a
- the dividend NDArrayb
- the dividend NDArray- Returns:
- the result
NDArray
-
pow
public static NDArray pow(NDArray a, java.lang.Number n)
Takes the power of theNDArray
with a number element-wise.Examples
jshell> NDArray array = manager.arange(5f); jshell> NDArrays.pow(array, 4f); ND: (6) cpu() float32 [ 0., 1., 8., 27., 64., 125.]
-
pow
public static NDArray pow(java.lang.Number n, NDArray a)
Takes the power of a number with aNDArray
element-wise.Examples
jshell> NDArray array = manager.arange(5f); jshell> NDArrays.pow(4f, array); ND: (5) cpu() float32 [ 1., 4., 16., 64., 256.]
-
pow
public static NDArray pow(NDArray a, NDArray b)
Takes the power of aNDArray
with aNDArray
element-wise.The shapes of
NDArray
a andNDArray
b must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(6f).reshape(3, 2); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> NDArrays.pow(array1, array2); // broadcasting ND: (3, 2) cpu() float32 [[ 0., 1.], [ 4., 27.], [ 16., 125.], ]
-
addi
public static NDArray addi(NDArray a, java.lang.Number n)
Adds a number to theNDArray
element-wise in place.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.addi(array, 2f); ND: (2) cpu() float32 [3., 4.] jshell> array; ND: (2) cpu() float32 [3., 4.]
-
addi
public static NDArray addi(java.lang.Number n, NDArray a)
Adds aNDArray
to a number element-wise in place.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.addi(2f, array); ND: (2) cpu() float32 [3., 4.] jshell> array; ND: (2) cpu() float32 [3., 4.]
-
addi
public static NDArray addi(NDArray... arrays)
Adds all of theNDArray
s together element-wise in place.The shapes of all of the
NDArray
s must be the same.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {3f, 4f}); jshell> NDArray array3 = manager.create(new float[] {5f, 6f}); jshell> NDArrays.addi(array1, array2, array3); ND: (2) cpu() float32 [9., 12.] jshell> array; ND: (2) cpu() float32 [9., 12.]
-
subi
public static NDArray subi(NDArray a, java.lang.Number n)
Subtracts a number from theNDArray
element-wise in place.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.subi(array, 2f); ND: (2) cpu() float32 [-1., 0.] jshell> array; ND: (2) cpu() float32 [-1., 0.]
-
subi
public static NDArray subi(java.lang.Number n, NDArray a)
Subtracts aNDArray
from a number element-wise in place.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.subi(3f, array); ND: (2) cpu() float32 [2., 1.] jshell> array; ND: (2) cpu() float32 [2., 1.]
-
subi
public static NDArray subi(NDArray a, NDArray b)
Subtracts aNDArray
from aNDArray
element-wise in place.The shapes of
NDArray
a andNDArray
b must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.arange(3f); jshell> NDArrays.subi(array1, array2); // broadcasting ND: (3, 3) cpu() float32 [[0., 0., 0.], [3., 3., 3.], [6., 6., 6.], ] jshell> array1; [[0., 0., 0.], [3., 3., 3.], [6., 6., 6.], ]
-
muli
public static NDArray muli(NDArray a, java.lang.Number n)
Multiplies theNDArray
by a number element-wise in place.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.muli(array, 3f); ND: (2) cpu() float32 [3., 6.] jshell> array; ND: (2) cpu() float32 [3., 6.]
- Parameters:
a
- the NDArray to be multipliedn
- the number to multiply by- Returns:
- the result
NDArray
-
muli
public static NDArray muli(java.lang.Number n, NDArray a)
Multiplies a number by aNDArray
element-wise.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f}); jshell> NDArrays.muli(3f, array); ND: (2) cpu() float32 [3., 6.] jshell> array; ND: (2) cpu() float32 [3., 6.]
-
muli
public static NDArray muli(NDArray... arrays)
Multiplies all of theNDArray
s together element-wise in place.The shapes of all of the
NDArray
s must be the same.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {3f, 4f}); jshell> NDArray array3 = manager.create(new float[] {5f, 6f}); jshell> NDArrays.muli(array1, array2, array3); ND: (2) cpu() float32 [15., 48.] jshell> array; ND: (2) cpu() float32 [15., 48.]
-
divi
public static NDArray divi(NDArray a, java.lang.Number n)
Divides a number by aNDArray
element-wise in place.Examples
jshell> NDArray array = manager.arange(5f); jshell> NDArrays.divi(array, 4f); ND: (5) cpu() float32 [0. , 0.25, 0.5 , 0.75, 1. ] jshell> array; ND: (5) cpu() float32 [0. , 0.25, 0.5 , 0.75, 1. ]
-
divi
public static NDArray divi(java.lang.Number n, NDArray a)
Divides a number by aNDArray
element-wise.Examples
jshell> NDArray array = manager.arange(5f).add(1); jshell> NDArrays.divi(4f, array); ND: (5) cpu() float32 [4. , 2. , 1.3333, 1. , 0.8 ] jshell> array; ND: (5) cpu() float32 [4. , 2. , 1.3333, 1. , 0.8 ]
-
divi
public static NDArray divi(NDArray a, NDArray b)
Divides aNDArray
by aNDArray
element-wise.The shapes of
NDArray
a andNDArray
b must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(9f).reshape(3, 3); jshell> NDArray array2 = manager.ones(new Shape(3)).mul(10); jshell> NDArrays.divi(array1, array2); // broadcasting ND: (3, 3) cpu() float32 [[0. , 0.1, 0.2], [0.3, 0.4, 0.5], [0.6, 0.7, 0.8], ] jshell> array1; [[0. , 0.1, 0.2], [0.3, 0.4, 0.5], [0.6, 0.7, 0.8], ]
-
modi
public static NDArray modi(NDArray a, java.lang.Number n)
Returns element-wise remainder of division in place.Examples
jshell> NDArray array = manager.arange(7f); jshell> NDArrays.modi(array, 5f); ND: (7) cpu() float32 [0., 1., 2., 3., 4., 0., 1.] jshell> array; ND: (7) cpu() float32 [0., 1., 2., 3., 4., 0., 1.]
-
modi
public static NDArray modi(java.lang.Number n, NDArray a)
Returns element-wise remainder of division in place.Examples
jshell> NDArray array = manager.arange(7f); jshell> NDArrays.modi(5f, array); ND: (7) cpu() float32 [0., 0., 1., 2., 1., 0., 5.] jshell> array; ND: (7) cpu() float32 [0., 0., 1., 2., 1., 0., 5.]
-
modi
public static NDArray modi(NDArray a, NDArray b)
Returns element-wise remainder of division.Examples
jshell> NDArray array1 = manager.create(new float[] {4f, 7f}); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> NDArrays.modi(array1, array2); ND: (2) cpu() float32 [0., 1.] jshell> array1; ND: (2) cpu() float32 [0., 1.]
- Parameters:
a
- the dividend NDArrayb
- the dividend NDArray- Returns:
- the result
NDArray
-
powi
public static NDArray powi(NDArray a, java.lang.Number n)
Takes the power of theNDArray
with a number element-wise in place.Examples
jshell> NDArray array = manager.arange(5f); jshell> NDArrays.powi(array, 4f); ND: (6) cpu() float32 [ 0., 1., 8., 27., 64., 125.] jshell> array; ND: (6) cpu() float32 [ 0., 1., 8., 27., 64., 125.]
-
powi
public static NDArray powi(java.lang.Number n, NDArray a)
Takes the power of a number with aNDArray
element-wise in place.Examples
jshell> NDArray array = manager.arange(5f); jshell> NDArrays.powi(4f, array); ND: (5) cpu() float32 [ 1., 4., 16., 64., 256.] jshell> array; ND: (5) cpu() float32 [ 1., 4., 16., 64., 256.]
-
powi
public static NDArray powi(NDArray a, NDArray b)
Takes the power of aNDArray
with aNDArray
element-wise.The shapes of
NDArray
a andNDArray
b must be broadcastable.Examples
jshell> NDArray array1 = manager.arange(6f).reshape(3, 2); jshell> NDArray array2 = manager.create(new float[] {2f, 3f}); jshell> NDArrays.powi(array1, 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.], ]
-
dot
public static NDArray dot(NDArray a, NDArray b)
Dot product ofNDArray
a andNDArray
b.- If both the
NDArray
and the otherNDArray
are 1-DNDArray
s, it is inner product of vectors (without complex conjugation). - If both the
NDArray
and the otherNDArray
are 2-DNDArray
s, it is matrix multiplication. - If either the
NDArray
or the otherNDArray
is 0-DNDArray
(scalar), it is equivalent to mul. - If the
NDArray
is N-DNDArray
and the otherNDArray
is 1-DNDArray
, it is a sum product over the last axis of those. - If the
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> NDArrays.dot(array1, 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> NDArrays.dot(array1, 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> NDArrays.dot(array1, 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> NDArrays.dot(array1, 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> NDArrays.dot(array1, array2); ND: (2, 2, 2) cpu() float32 [[[ 7., 10.], [15., 22.], ], [[23., 34.], [31., 46.], ], ]
- If both the
-
matMul
public static NDArray matMul(NDArray a, NDArray b)
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> NDArrays.matMul(array1, 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> NDArrays.matMul(array1, 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> NDArrays.matMul(array1, 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> NDArrays.matMul(array1, array2); ND: () cpu() float32 98.
- If both this
-
stack
public static NDArray stack(NDList arrays)
Joins a sequence ofNDArray
s inNDList
along the first axis.Examples
jshell> NDArray array1 = manager.create(new float[] {0f, 1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {3f, 4f, 5f}); jshell> NDArray array3 = manager.create(new float[] {6f, 7f, 8f}); jshell> NDArrays.stack(new NDList(array1, array2, array3)); ND: (3, 3) cpu() float32 [[0., 1., 2.], [3., 4., 5.], [6., 7., 8.], ]
-
stack
public static NDArray stack(NDList arrays, int axis)
Joins a sequence ofNDArray
s inNDList
along a new axis.The axis parameter specifies the index of the new axis in the dimensions of the result. For example, if axis=0 it will be the first dimension and if axis=-1 it will be the last dimension.
Examples
jshell> NDArray array1 = manager.create(new float[] {0f, 1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {3f, 4f, 5f}); jshell> NDArrays.stack(new NDList(array1, array2), 0); ND: (2, 3) cpu() float32 [[0., 1., 2.], [3., 4., 5.], ] jshell> NDArray array1 = manager.create(new float[] {0f, 1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {3f, 4f, 5f}); jshell> NDArrays.stack(new NDList(array1, array2), 1); ND: (3, 2) cpu() float32 [[0., 3.], [1., 4.], [2., 5.], ]
-
concat
public static NDArray concat(NDList arrays)
Joins aNDList
along the first axis.Examples
jshell> NDArray array1 = manager.create(new float[] {0f, 1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {3f, 4f, 5f}); jshell> NDArray array3 = manager.create(new float[] {6f, 7f, 8f}); jshell> NDArrays.concat(new NDList(array1, array2, array3)); ND: (9) cpu() float32 [0., 1., 2., 3., 4., 5., 6., 7., 8.]
-
concat
public static NDArray concat(NDList arrays, int axis)
Joins aNDList
along an existing axis.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f, 3f, 4f}, new Shape(2, 2)); jshell> NDArray array2 = manager.create(new float[] {5f, 6f}, new Shape(1, 2)); jshell> NDArrays.concat(new NDList(array1, array2), 0); ND: (3, 2) cpu() float32 [[1., 2.], [3., 4.], [5., 6.], ] jshell> NDArrays.concat(new NDList(array1, array2.transpose()), 1); ND: (2, 3) cpu() float32 [[1., 2., 5.], [3., 4., 6.], ]
-
logicalAnd
public static NDArray logicalAnd(NDArray a, NDArray b)
Returns the truth value ofNDArray
a ANDNDArray
b element-wise.The shapes of
NDArray
a andNDArray
b must be broadcastable.Examples
jshell> NDArray array1 = manager.create(new boolean[] {true}); jshell> NDArray array2 = manager.create(new boolean[] {false}); jshell> NDArrays.logicalAnd(array1, array2); ND: (1) cpu() boolean [false] jshell> array1 = manager.create(new boolean[] {true, false}); jshell> array2 = manager.create(new boolean[] {false, false}); jshell> NDArrays.logicalAnd(array.gt(1), array.lt(4)); ND: (2) cpu() boolean [false, false]
-
logicalOr
public static NDArray logicalOr(NDArray a, NDArray b)
Computes the truth value ofNDArray
a ANDNDArray
b element-wise.Examples
jshell> NDArray array1 = manager.create(new boolean[] {true}); jshell> NDArray array2 = manager.create(new boolean[] {false}); jshell> NDArrays.logicalOr(array1, array2); ND: (1) cpu() boolean [ true] jshell> array1 = manager.create(new boolean[] {true, false}); jshell> array2 = manager.create(new boolean[] {false, false}); jshell> NDArrays.logicalOr(array1, array2); ND: (2) cpu() boolean [ true, false]
jshell> NDArray array = manager.arange(5f); jshell> NDArrays.logicalOr(array.lt(1), array.gt(3)); ND: (5) cpu() boolean [ true, false, false, false, true]
-
logicalXor
public static NDArray logicalXor(NDArray a, NDArray b)
Computes the truth value ofNDArray
a ANDNDArray
b element-wise.Examples
jshell> NDArray array = manager.create(new boolean[] {true}); jshell> NDArrays.logicalXor(array1, array2); ND: (1) cpu() boolean [ true] jshell> array1 = manager.create(new boolean[] {true, false}); jshell> array2 = manager.create(new boolean[] {false, false}); jshell> NDArrays.logicalXor(array1, array2); ND: (2) cpu() boolean [ true, false]
jshell> NDArray array = manager.arange(5f); jshell> NDArrays.logicalXor(array.lt(1), array.gt(3)); ND: (5) cpu() boolean [ true, false, false, false, true]
-
erfinv
public static NDArray erfinv(NDArray input)
Returns element-wise inverse gauss error function of the inputNDArray
.Examples
jshell> NDArray array = manager.create(new float[] {0f, 0.5f, -1f}); jshell> NDArrays.erfinv(array); ND: (3) cpu() float32 [0., 0.4769, -inf]
- Parameters:
input
- The inputNDArray
- Returns:
- The inverse of gauss error of the input, element-wise
-
-