In numpy, arrays may have a data-types containing fields, analogous to columns in a spreadsheet. An example is [(a, int), (b, float)]
, where each entry in the array is a pair of (int, float). Normally, these attributes are accessed using dictionary lookups such as arr['a'] and arr['b']
. Record arrays allow the fields to be accessed as members of the array, using arr.a and arr.b
.
numpy.recarray.cumsum()
function returns the cumulative sum of array elements over a given axis.
Syntax :
numpy.recarray.cumsum(axis=None, dtype=None, out=None)
Parameters:
axis : Axis along which the cumulative sumis computed. The default is to compute the sum of the flattened array.
dtype : Type of the returned array, as well as of the accumulator in which the elements are multiplied.
out : [ndarray, optional] A location into which the result is stored.
-> If provided, it must have a shape that the inputs broadcast to.
-> If not provided or None, a freshly-allocated array is returned.Return : A new array holding the result is returned unless out is specified, in which case it is returned.
Code #1 :
# Python program explaining
# numpy.recarray.cumsum() method
# importing numpy as geek
import
numpy as geek
# creating input array with 2 different field
in_arr
=
geek.array([[(
5.0
,
2
), (
3.0
,
-
4
), (
6.0
,
9
)],
[(
9.0
,
1
), (
5.0
,
4
), (
-
12.0
,
-
7
)]],
dtype
=
[(
'a'
,
float
), (
'b'
,
int
)])
(
"Input array : "
, in_arr)
# convert it to a record array,
# using arr.view(np.recarray)
rec_arr
=
in_arr.view(geek.recarray)
(
"Record array of float: "
, rec_arr.a)
(
"Record array of int: "
, rec_arr.b)
# applying recarray.cumsum methods
# to float record array along axis 1
out_arr
=
rec_arr.a.cumsum( axis
=
1
)
(
"Output array along axis 1: "
, out_arr)
# applying recarray.cumsum methods
# to int record array along default axis
out_arr
=
rec_arr.b.cumsum()
(
"Output array along default axis : "
, out_arr)
Output:Input array : [[( 5., 2) ( 3., -4) ( 6., 9)] [( 9., 1) ( 5., 4) (-12., -7)]] Record array of float: [[ 5. 3. 6.] [ 9. 5. -12.]] Record array of int: [[ 2 -4 9] [ 1 4 -7]] Output array along axis 1: [[ 5. 8. 14.] [ 9. 14. 2.]] Output array along default axis : [ 2 -2 7 8 12 5]