Oi! Estava fazendo uns testes com multiplicações de arrays e acabei percebendo que não seguem as mesmas regras de multiplicação de matriz, mas não consegui entender qual o critério.
Fiz os seguintes testes:
TESTE 1: In: A = np.array([[1,2,3],[4,5,6]]) C = np.array([[1,2,3],[2,2,2]]) B = A*C B
Out: array([[1, 4, 9], [8, 10, 12]])
Observei que nesse Teste 1, onde os arrays possuem o mesmo shape (2,3), os elementos das posições correspondentes de A e de C foram multiplicados um pelo outro:
Primeira linha: [1* 1 , 2* 2, 3* 3 ] -> [1 ,4, 9] Segunda linha: [4* 2, 5* 2, 6* 2] -> [8, 10, 12]
TESTE 2: In: A = np.array([[1,2,3],[4,5,6]]) C = np.array([1,2,3]) B = A*C B
Out: array([[ 1, 4, 9], [ 4, 10, 18]])
Já no teste 2, em foi feita a multiplicação de um array (2,3) com um (3, ), verifiquei que essa única linha do C multiplicou tanto a primeira como a segunda linha de A:
Primeira linha: [1 * 1 , 2* 2, 3 * 3] -> [1, 4, 9] Segunda linha: [4* 1, 5* 2, 6 * 3] -> [4, 10, 18]
Qual o critério/regra de multiplicação entre np.arrays?