J'étais en train de déboguer un code écrit par quelqu'un qui a quitté l'organisation et est tombé sur une ligne, qui utilise les fonctions np.less_equal.outer et np.greater_equal.outer . Je sais que np.outer crée un produit croisé cartésien de deux tableaux à une dimension et crée deux tableaux, et np.less_equal compare l'élément de deux tableaux et renvoie vrai ou faux. Quelqu'un peut-il expliquer comment ce formulaire combiné fonctionne.
Merci!
3 Réponses :
voici un exemple:
np.outer(range(1,2), range(1,3))
array([[1 2 3],
[2 4 6],
)
et d'abord la fonction externe
np.less_equal([4, 2, 1], [2, 2, 2]) array([False, True, True]) np.greater_equal([4, 2, 1], [2, 2, 2]) array([ True, True, False], dtype=bool)
espérons que cela vous aidera.
p >
less_equal et greater_equal sont des types spéciaux de fonctions numpy appelées ufunc s, en ce sens qu'elles ont des fonctionnalités extensibles , y compris accumulate , at et external .
Dans ce cas, ufunc.outer étend la fonction pour fonctionner de la même manière que le produit externe - mais alors que le produit extérieur réel serait multiplier.outer , cela fait plutôt la comparaison supérieure ou inférieure.
Vous obtenez donc un tableau 2D de booléens correspondant à chaque élément du premier tableau, et s'ils sont supérieurs ou inférieurs à chacun des éléments du deuxième tableau.
np.triu(np.ones((18, 13), dtype = bool), 0)
Je pense que cela devrait être np.triu (np.ones ((18-1, 13-1), dtype = bool), 0) .