Em numpy, os arrays podem ter tipos de dados contendo campos, análogos às colunas de uma planilha. Um exemplo é [(a, int), (b, float)], onde cada entrada na matriz é um par de (int, float). Normalmente, esses atributos são acessados ​​usando pesquisas de dicionário, como arr['a'] and arr['b'].

Matrizes de registro permitem que os campos sejam acessados ​​como membros da matriz, usando arr.a and arr.b. numpy.recarray.prod() função retorna o produto dos elementos da matriz sobre o eixo fornecido.

Sintaxe: numpy.recarray.prod(axis=None, dtype=None, out=None, keepdims=False)

Parâmetros:
axis: [Nenhum ou int ou tupla de ints, opcional] Eixo ou eixos ao longo dos quais um produto é executado. O padrão, axis = None, calculará o produto de todos os elementos na matriz de entrada. Se o eixo for negativo, ele conta do último ao primeiro eixo.
dtype: [dtype, opcional] O tipo da matriz retornada.
out: [ndarray, opcional] Um local no qual o resultado é armazenado.
  -> Se fornecido, deve ter um formato para o qual as entradas sejam transmitidas.
  -> Se não fornecido ou Nenhum, um array recém-alocado é retornado.
keepdims:[bool, opcional] Se for definido como True, os eixos que são reduzidos são deixados no resultado como dimensões com tamanho um. Com esta opção, o resultado será transmitido corretamente na matriz de entrada.

Retorno: [ndarray] O produto dos elementos da matriz no eixo fornecido.



Código # 1:

import numpy as geek 
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)]) 
print ("Input array : ", in_arr) 
rec_arr = in_arr.view(geek.recarray) 
print("Record array of float: ", rec_arr.a) 
print("Record array of int: ", rec_arr.b) 
out_arr = rec_arr.a.prod( axis = 1) 
print ("Output product array of float along axis 1: ", out_arr)  
out_arr = rec_arr.a.prod( axis = 0) 
print ("Output product array of float along axis 0: ", out_arr)  
out_arr = rec_arr.a.prod( axis = -1) 
print ("Output product array of float along -1 axis : ", out_arr)  
  
out_arr = rec_arr.b.prod() 
print ("Output product of int array elements array along default axis: ", out_arr)  
Resultado:
Matriz de entrada: [[(5., 2) (3., -4) (6., 9)]
 [(9., 1) (5., 4) (-12., -7)]]
Matriz de registro de float: [[5. 3. 6.]
 [9. 5. -12.]]
Matriz de registro de int: [[2 -4 9]
 [1 4 -7]]
Matriz de produto de saída de flutuação ao longo do eixo 1: [90. -540.]
Matriz de produto de saída de flutuação ao longo do eixo 0: [45. 15. -72.]
Matriz de produto de saída de flutuação ao longo do eixo -1: [90. -540.]
Produto de saída da matriz de elementos da matriz int ao longo do eixo padrão: 2016