Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2023

ProgramaçãoLinguagens de programação
Código
ce153860
Banca
CESPE / CEBRASPE
Órgão
DATAPREV
Ano
2023
Nível
Médio
Cargo
Analista de Tecnologia da Informação - Perfil: Inteligência da informação
A respeito da biblioteca Numpy, julgue o item a seguir.O resultado da execução do código Python a seguir resultará em valores diferentes para as variáveis c e d.import numpy as npa = np.array([[1,2],[3,4]])b = np.array([[4,3],[2,1]])c= np.dot(a,b)print(c)d=a*bprint(d)
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Numpy: multiplicação de matrizes vs. elemento a elemento

Gabarito: Certo (C). O código utiliza np.dot(a,b) para multiplicação de matrizes (produto escalar) e a*b para multiplicação elemento a elemento, gerando resultados diferentes. A afirmação está correta.

O problema testa a diferença entre dois tipos de multiplicação em arrays NumPy:

  • np.dot(a,b): realiza o produto matricial (soma dos produtos das linhas de a com as colunas de b).

  • a * b: realiza a multiplicação elemento a elemento (produto de Hadamard), onde cada posição é o produto dos valores correspondentes.

Cálculo passo a passo:

a = np.array([[1,2],[3,4]])
b = np.array([[4,3],[2,1]])

np.dot(a,b):

  • Linha 1: [14 + 22, 13 + 21] = [4+4=8, 3+2=5]

  • Linha 2: [34 + 42, 33 + 41] = [12+8=20, 9+4=13]

  • Resultado: [[8, 5], [20, 13]]

a * b:

  • [14, 23] = [4, 6]

  • [32, 41] = [6, 4]

  • Resultado: [[4, 6], [6, 4]]

Os resultados são claramente diferentes: c é [[8,5],[20,13]] e d é [[4,6],[6,4]]. Portanto, a afirmação de que resultarão em valores diferentes é verdadeira.

  1. 1np.dot(a,b)
  2. 2Produto matricial
  3. 3Soma linhas × colunas
  4. 4Resultado: [[8,5],[20,13]]
  5. 5a * b
  6. 6Elemento a elemento
  7. 7Produto de Hadamard
  8. 8Resultado: [[4,6],[6,4]]
LEVEL · soulevel.com.br
PEGA ESSA DICA!

Em NumPy, o operador * sobrecarregado sempre realiza operações elemento a elemento, enquanto funções como np.dot, np.matmul ou o operador @ (Python 3.5+) realizam multiplicação matricial. Fique atento a essa diferença, pois é cobrada com frequência em concursos.

Gabarito: C (Certo).

Link permanente: /questoes/ce153860