dúvida com um código numpy
import numpy as np
np.random.seed(42)
A = np.random.randint(0, 5, (8, 3))
B = np.random.randint(0, 5, (2, 2))
C = (A.reshape(8, 3, 1, 1) == B)
contem = C.any(3).any(1).all(1)
linhas = np.where(contem)[0]
print(linhas)
olá a todos, o código abaixo tem sido uma tremenda dor de cabeça pra mim, que como etapa no meu desenvolvimento como cientista de dados, estou aprendendo numpy. No curdo que tenho feito, essa é a resolução pra um exercício, e eu realmente não entendo esse código, e se alguém puder me explicar os pontos nos quais tenho dúvida, ficarei agradecido.
seguem os pontos:
1 - Como a variável 'C' funciona exatamente? Como ela faz essa comparação e por que precisa ser quadridimensional, invés de tridimensional
2 - Como exatamente a variável 'contem' funciona? sei para que servem as funções any e all, mas nunca vi elas encadeadas dessa meneira e nem sei o que devem devolver encadeadas assim
3 - Como eu não entendi direito a variável contem, eu não sei exatamente o porque deste where devolver os números que devolve.
se alguem puder me ajudar, fico exatamente agradecido