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.dot()
function returns product of two record arrays.
Syntax :
numpy.recarray.dot(arr, out=None)
Parameters:
arr : Second record array.
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.dot() method
# importing numpy as geek
import
numpy as geek
# creating 2 input array with 2 different field
in_arr1
=
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
)])
in_arr2
=
geek.array([[(
2.0
,
1
), (
4.0
,
-
3
)],
[(
8.0
,
3
), (
6.0
,
5
)],
[(
6.0
,
-
5
), (
-
5.0
,
4
)]],
dtype
=
[(
'a'
,
float
), (
'b'
,
int
)])
(
"1st Input array : "
, in_arr1)
(
"2nd Input array : "
, in_arr2)
# convert it to a record array,
# using arr.view(np.recarray)
rec_arr1
=
in_arr1.view(geek.recarray)
(
"1st Record array of float: "
, rec_arr1.a)
(
"1st Record array of int: "
, rec_arr1.b)
rec_arr2
=
in_arr2.view(geek.recarray)
(
"2nd Record array of float: "
, rec_arr2.a)
(
"2nd Record array of int: "
, rec_arr2.b)
# applying recarray.dot methods
# between two float record array
out_arr1
=
rec_arr1.a.dot( rec_arr2.a)
(
"Output float array : "
, out_arr1)
# applying recarray.dot methods
# between two int record array
out_arr1
=
rec_arr1.b.dot( rec_arr2.b)
(
"Output int array : "
, out_arr1)
Output:1st Input array : [[( 5., 2) ( 3., -4) ( 6., 9)] [( 9., 1) ( 5., 4) (-12., -7)]] 2nd Input array : [[( 2., 1) ( 4., -3)] [( 8., 3) ( 6., 5)] [( 6., -5) (-5., 4)]] 1st Record array of float: [[ 5. 3. 6.] [ 9. 5. -12.]] 1st Record array of int: [[ 2 -4 9] [ 1 4 -7]] 2nd Record array of float: [[ 2. 4.] [ 8. 6.] [ 6. -5.]] 2nd Record array of int: [[ 1 -3] [ 3 5] [-5 4]] Output float array : [[ 70. 8.] [-14. 126.]] Output int array : [[-55 10] [ 48 -11]]