1
votes

Quelqu'un peut-il expliquer np.less_equal.outer (range (1,18), range (1,13))

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!


0 commentaires

3 Réponses :


-1
votes

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 >


0 commentaires

2
votes

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)


1 commentaires

Je pense que cela devrait être np.triu (np.ones ((18-1, 13-1), dtype = bool), 0) .