Class NDArrays
- java.lang.Object
-
- ai.djl.ndarray.NDArrays
-
public final class NDArrays extends java.lang.ObjectThis class contains various methods for manipulating NDArrays.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static NDArrayadd(NDArray... arrays)static NDArrayadd(NDArray a, java.lang.Number n)Adds a number to theNDArrayelement-wise.static NDArrayadd(java.lang.Number n, NDArray a)Adds aNDArrayto a number element-wise.static NDArrayaddi(NDArray... arrays)Adds all of theNDArrays together element-wise in place.static NDArrayaddi(NDArray a, java.lang.Number n)Adds a number to theNDArrayelement-wise in place.static NDArrayaddi(java.lang.Number n, NDArray a)Adds aNDArrayto a number element-wise in place.static booleanallClose(NDArray a, NDArray b)Returnstrueif twoNDArrayare element-wise equal within a tolerance.static booleanallClose(NDArray a, NDArray b, double rtol, double atol, boolean equalNan)Returnstrueif twoNDArrayare element-wise equal within a tolerance.static NDArraybooleanMask(NDArray data, NDArray index)static NDArraybooleanMask(NDArray data, NDArray index, int axis)static NDArrayconcat(NDList arrays)Joins aNDListalong the first axis.static NDArrayconcat(NDList arrays, int axis)Joins aNDListalong an existing axis.static booleancontentEquals(NDArray a, NDArray b)static booleancontentEquals(NDArray a, java.lang.Number n)static NDArraydiv(NDArray a, NDArray b)static NDArraydiv(NDArray a, java.lang.Number n)Divides theNDArrayby a number element-wise.static NDArraydiv(java.lang.Number n, NDArray a)Divides a number by aNDArrayelement-wise.static NDArraydivi(NDArray a, NDArray b)static NDArraydivi(NDArray a, java.lang.Number n)Divides a number by aNDArrayelement-wise in place.static NDArraydivi(java.lang.Number n, NDArray a)Divides a number by aNDArrayelement-wise.static NDArraydot(NDArray a, NDArray b)static NDArrayeq(NDArray a, NDArray b)Returns the booleanNDArrayfor element-wise "Equals" comparison.static NDArrayeq(NDArray a, java.lang.Number n)Returns the booleanNDArrayfor element-wise "Equals" comparison.static NDArrayeq(java.lang.Number n, NDArray a)Returns the booleanNDArrayfor element-wise "Equals" comparison.static NDArrayerfinv(NDArray input)Returns element-wise inverse gauss error function of the inputNDArray.static NDArraygt(NDArray a, NDArray b)Returns the booleanNDArrayfor element-wise "Greater Than" comparison.static NDArraygt(NDArray a, java.lang.Number n)Returns the booleanNDArrayfor element-wise "Greater Than" comparison.static NDArraygt(java.lang.Number n, NDArray a)Returns the booleanNDArrayfor element-wise "Greater Than" comparison.static NDArraygte(NDArray a, NDArray b)Returns the booleanNDArrayfor element-wise "Greater or equals" comparison.static NDArraygte(NDArray a, java.lang.Number n)Returns the booleanNDArrayfor element-wise "Greater or equals" comparison.static NDArraygte(java.lang.Number n, NDArray a)Returns the booleanNDArrayfor element-wise "Greater or equals" comparison.static NDArraylogicalAnd(NDArray a, NDArray b)static NDArraylogicalOr(NDArray a, NDArray b)static NDArraylogicalXor(NDArray a, NDArray b)static NDArraylt(NDArray a, NDArray b)Returns the booleanNDArrayfor element-wise "Less" comparison.static NDArraylt(NDArray a, java.lang.Number n)Returns the booleanNDArrayfor element-wise "Less" comparison.static NDArraylt(java.lang.Number n, NDArray a)Returns the booleanNDArrayfor element-wise "Less" comparison.static NDArraylte(NDArray a, NDArray b)Returns the booleanNDArrayfor element-wise "Less or equals" comparison.static NDArraylte(NDArray a, java.lang.Number n)Returns the booleanNDArrayfor element-wise "Less or equals" comparison.static NDArraylte(java.lang.Number n, NDArray a)Returns the booleanNDArrayfor element-wise "Less or equals" comparison.static NDArraymatMul(NDArray a, NDArray b)Product matrix of thisNDArrayand the otherNDArray.static NDArraymaximum(NDArray a, NDArray b)static NDArraymaximum(NDArray a, java.lang.Number n)Returns the maximum of aNDArrayand a number element-wise.static NDArraymaximum(java.lang.Number n, NDArray a)Returns the maximum of a number and aNDArrayelement-wise.static NDArrayminimum(NDArray a, NDArray b)static NDArrayminimum(NDArray a, java.lang.Number n)Returns the minimum of aNDArrayand a number element-wise.static NDArrayminimum(java.lang.Number n, NDArray a)Returns the minimum of a number and aNDArrayelement-wise.static NDArraymod(NDArray a, NDArray b)Returns element-wise remainder of division.static NDArraymod(NDArray a, java.lang.Number n)Returns element-wise remainder of division.static NDArraymod(java.lang.Number n, NDArray a)Returns element-wise remainder of division.static NDArraymodi(NDArray a, NDArray b)Returns element-wise remainder of division.static NDArraymodi(NDArray a, java.lang.Number n)Returns element-wise remainder of division in place.static NDArraymodi(java.lang.Number n, NDArray a)Returns element-wise remainder of division in place.static NDArraymul(NDArray... arrays)Multiplies all of theNDArrays together element-wise.static NDArraymul(NDArray a, java.lang.Number n)Multiplies theNDArrayby a number element-wise.static NDArraymul(java.lang.Number n, NDArray a)Multiplies a number by aNDArrayelement-wise.static NDArraymuli(NDArray... arrays)Multiplies all of theNDArrays together element-wise in place.static NDArraymuli(NDArray a, java.lang.Number n)Multiplies theNDArrayby a number element-wise in place.static NDArraymuli(java.lang.Number n, NDArray a)Multiplies a number by aNDArrayelement-wise.static NDArrayneq(NDArray a, NDArray b)Returns the booleanNDArrayfor element-wise "Not equals" comparison.static NDArrayneq(NDArray a, java.lang.Number n)Returns the booleanNDArrayfor element-wise "Not equals" comparison.static NDArrayneq(java.lang.Number n, NDArray a)Returns the booleanNDArrayfor element-wise "Not equals" comparison.static NDArraypow(NDArray a, NDArray b)static NDArraypow(NDArray a, java.lang.Number n)Takes the power of theNDArraywith a number element-wise.static NDArraypow(java.lang.Number n, NDArray a)Takes the power of a number with aNDArrayelement-wise.static NDArraypowi(NDArray a, NDArray b)static NDArraypowi(NDArray a, java.lang.Number n)Takes the power of theNDArraywith a number element-wise in place.static NDArraypowi(java.lang.Number n, NDArray a)Takes the power of a number with aNDArrayelement-wise in place.static NDArraysequenceMask(NDArray data, NDArray sequenceLength)static NDArraysequenceMask(NDArray data, NDArray sequenceLength, float value)static booleanshapeEquals(NDArray a, NDArray b)Checks 2NDArrays for equal shapes.static NDArraystack(NDList arrays)static NDArraystack(NDList arrays, int axis)static NDArraysub(NDArray a, NDArray b)static NDArraysub(NDArray a, java.lang.Number n)Subtracts a number from theNDArrayelement-wise.static NDArraysub(java.lang.Number n, NDArray a)Subtracts aNDArrayfrom a number element-wise.static NDArraysubi(NDArray a, NDArray b)static NDArraysubi(NDArray a, java.lang.Number n)Subtracts a number from theNDArrayelement-wise in place.static NDArraysubi(java.lang.Number n, NDArray a)Subtracts aNDArrayfrom a number element-wise in place.static NDArraywhere(NDArray condition, NDArray a, NDArray b)
-
-
-
Method Detail
-
contentEquals
public static boolean contentEquals(NDArray a, java.lang.Number n)
Returnstrueif all elements inNDArraya are equal toNDArrayb.Examples
jshell> NDArray array = manager.ones(new Shape(3)); jshell> NDArrays.contentEquals(array, 1); // return true instead of boolean NDArray true
- Parameters:
a- theNDArrayto comparen- the number to compare- Returns:
- the boolean result
-
contentEquals
public static boolean contentEquals(NDArray a, NDArray b)
Returnstrueif all elements inNDArraya are equal toNDArrayb.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 2NDArrays 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)
Returnstrueif twoNDArrayare element-wise equal within a tolerance.Examples
jshell> NDArray array1 = manager.create(new double[] {1e10,1e-7}); jshell> NDArray array2 = manager.create(new double[] {1.00001e10,1e-8}); jshell> 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)
Returnstrueif twoNDArrayare element-wise equal within a tolerance.Examples
jshell> NDArray array1 = manager.create(new double[] {1e10, 1e-7}); jshell> NDArray array2 = manager.create(new double[] {1.00001e10, 1e-8}); jshell> 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- theNDArrayto compare withb- theNDArrayto compare withrtol- the relative tolerance parameteratol- the absolute tolerance parameterequalNan- whether to compare NaN’s as equal. Iftrue, NaN’s in theNDArraywill be considered equal to NaN’s in the otherNDArray- Returns:
- the boolean result
-
eq
public static NDArray eq(NDArray a, java.lang.Number n)
Returns the booleanNDArrayfor 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 booleanNDArrayfor 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 booleanNDArrayfor 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 booleanNDArrayfor 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 booleanNDArrayfor 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 booleanNDArrayfor element-wise "Not equals" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {1f, 3f}); jshell> 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 booleanNDArrayfor 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 booleanNDArrayfor 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
NDArrayfor element-wise "Greater Than" comparison
-
gt
public static NDArray gt(NDArray a, NDArray b)
Returns the booleanNDArrayfor element-wise "Greater Than" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {4f, 2f}); jshell> NDArray array2 = manager.create(new float[] {2f, 2f}); jshell> NDArrays.gt(array1, array2); ND: (2) cpu() boolean [ true, false]
-
gte
public static NDArray gte(NDArray a, java.lang.Number n)
Returns the booleanNDArrayfor 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 booleanNDArrayfor 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 booleanNDArrayfor element-wise "Greater or equals" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {4f, 2f}); jshell> NDArray array2 = manager.create(new float[] {2f, 2f}); jshell> NDArrays.gte(array1, array2); ND: (2) cpu() boolean [ true, true]
-
lt
public static NDArray lt(NDArray a, java.lang.Number n)
Returns the booleanNDArrayfor 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 booleanNDArrayfor 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 booleanNDArrayfor element-wise "Less" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {2f, 2f}); jshell> NDArrays.lt(array1, array2); ND: (2) cpu() boolean [ true, false]
-
lte
public static NDArray lte(NDArray a, java.lang.Number n)
Returns the booleanNDArrayfor 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 booleanNDArrayfor 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 booleanNDArrayfor element-wise "Less or equals" comparison.Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f}); jshell> NDArray array2 = manager.create(new float[] {2f, 2f}); jshell> 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 theNDArrayor the otherNDArraydepending on condition.Given three
NDArrays, condition, a, and b, returns anNDArraywith the elements from a or b, depending on whether the elements from conditionNDArrayaretrueorfalse. If condition has the same shape as a, each element in the outputNDArrayis from this if the corresponding element in the condition istrue, and from other iffalse.Note that all non-zero values are interpreted as
truein 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 aNDArrayand 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 aNDArrayelement-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 ofNDArraya andNDArrayb element-wise.The shapes of
NDArraya andNDArrayb 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 aNDArrayand 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 aNDArrayelement-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 ofNDArraya andNDArrayb element-wise.The shapes of
NDArraya andNDArrayb 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 theNDArraygiven the index booleanNDArrayalong first axis.Examples
jshell> NDArray array = manager.create(new float[] {1f, 2f, 3f, 4f, 5f, 6f}, new Shape(3, 2)); jshell> NDArray mask = manager.create(new boolean[] {true, false, true}); jshell> 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 givenNDArrayoutside the sequenceNDArrayto a constant value.This function takes an n-dimensional input array of the form [batch_size, max_sequence_length, ....] and returns an array of the same shape. Parameter
sequenceLengthis used to handle variable-length sequences.sequenceLengthshould 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 givenNDArrayoutside the sequenceNDArrayto 0.This function takes an n-dimensional input array of the form [batch_size, max_sequence_length, ....] and returns an array of the same shape. Parameter
sequenceLengthis used to handle variable-length sequences.sequenceLengthshould 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 theNDArrayelement-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 aNDArrayto 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 theNDArrayelement-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 aNDArrayfrom 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 aNDArrayfrom aNDArrayelement-wise.The shapes of
NDArraya andNDArrayb 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 theNDArrayby 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 aNDArrayelement-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 theNDArrayby 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 aNDArrayelement-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 aNDArrayby aNDArrayelement-wise.The shapes of
NDArraya andNDArrayb 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 theNDArraywith 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 aNDArrayelement-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 aNDArraywith aNDArrayelement-wise.The shapes of
NDArraya andNDArrayb 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 theNDArrayelement-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 aNDArrayto 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 theNDArrays together element-wise in place.The shapes of all of the
NDArrays 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 theNDArrayelement-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 aNDArrayfrom 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 aNDArrayfrom aNDArrayelement-wise in place.The shapes of
NDArraya andNDArrayb 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 theNDArrayby 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 aNDArrayelement-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 theNDArrays together element-wise in place.The shapes of all of the
NDArrays 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 aNDArrayelement-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 aNDArrayelement-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 aNDArrayby aNDArrayelement-wise.The shapes of
NDArraya andNDArrayb 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 theNDArraywith 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 aNDArrayelement-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 aNDArraywith aNDArrayelement-wise.The shapes of
NDArraya andNDArrayb 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 ofNDArraya andNDArrayb.- If both the
NDArrayand the otherNDArrayare 1-DNDArrays, it is inner product of vectors (without complex conjugation). - If both the
NDArrayand the otherNDArrayare 2-DNDArrays, it is matrix multiplication. - If either the
NDArrayor the otherNDArrayis 0-DNDArray(scalar), it is equivalent to mul. - If the
NDArrayis N-DNDArrayand the otherNDArrayis 1-DNDArray, it is a sum product over the last axis of those. - If the
NDArrayis N-DNDArrayand the otherNDArrayis M-DNDArray(where M>=2), it is a sum product over the last axis of thisNDArrayand the second-to-last axis of the otherNDArray
Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 2f, 3f}); jshell> NDArray array2 = manager.create(new float[] {4f, 5f, 6f}); jshell> 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 thisNDArrayand the otherNDArray.The behavior depends on the arguments in the following way.
- If both this
NDArrayand the otherNDArrayare 2-DNDArrays, they are multiplied like conventional matrices - If either this
NDArrayor the otherNDArrayis N-DNDArray, N > 2 , it is treated as a stack of matrices residing in the last two indexes and broadcast accordingly. - If this
NDArrayis 1-DNDArray, it is promoted to a matrix by prepending a 1 to its dimensions. After matrix multiplication the prepended 1 is removed. - If other
NDArrayis 1-DNDArray, it is promoted to a matrix by appending a 1 to its dimensions. After matrix multiplication the appended 1 is removed.
Examples
jshell> NDArray array1 = manager.create(new float[] {1f, 0f, 0f, 1f}, new Shape(2, 2)); jshell> NDArray array2 = manager.create(new float[] {4f, 1f, 2f, 2f}, new Shape(2, 2)); jshell> 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 ofNDArrays inNDListalong 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 ofNDArrays inNDListalong 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 aNDListalong 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 aNDListalong 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 ofNDArraya ANDNDArrayb element-wise.The shapes of
NDArraya andNDArrayb 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 ofNDArraya ANDNDArrayb 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 ofNDArraya ANDNDArrayb 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
-
-