Quest-ce que le self en Python ? Exemples concrets
Qu'est-ce que le self en Python ? Exemples concrets
Je veux faire une plongée profonde dans quelque chose qui s'appelle l'analyse combinatoire. Cela peut être défini comme le choix et l'agencement d'éléments d'ensembles conformément à des règles prescrites. Cela peut sembler ésotérique, mais il y a en fait des cas d'utilisation très pratiques. Vous pouvez regarder la vidéo complète de ce tutoriel au bas de ce blog.
Dans ce didacticiel, je vais vous montrer comment procéder à l'aide de Power Query dans LuckyTemplates.
Table des matières
Cas d'exemple d'analyse combinatoire
Dans cet exemple d'analyse combinatoire, la tâche consistait à disposer d'une liste de six entrepôts et nous devions générer chaque ensemble unique de trois. Cela ressemble à un problème assez simple, mais c'est l'un de ces cas où la langue compte vraiment.
La bonne réponse ici est soit 216, 120, 56 ou 20. Ainsi, selon la façon dont vous définissez cet ensemble unique et les règles que vous avez prescrites, vous pourriez être décalé d'un facteur 10 si vous n'obtenez pas l'ensemble correctement.
Et donc, il y a deux dimensions qui comptent ici. La première est « l'ordre est-il important ? » Alors, quand on parle de trois ensembles de trois, ABC est-il équivalent à BCA ? Alors, l'ordre est-il important ? Et si l'ordre compte , nous parlons de permutations .
Un bon exemple de permutations où l'ordre peut avoir de l'importance est (nous parlons d'un contexte d'entrepôt) dans le cas du temps de déplacement. Il se peut très bien que si vous visitez l'entrepôt A, puis l'entrepôt B, puis l'entrepôt C, le temps de trajet dû au flux de trafic avec trafic contre trafic, l'heure à laquelle vous êtes arrivé à chaque entrepôt, pourrait être assez différent selon la commande dans lequel vous les visitez.
Le revers de la médaille est que " l'ordre n'a pas d'importance ", auquel cas nous parlons de combinaisons et non de permutations. Le cas d'utilisation ici qui est commun est la distance. Par exemple, à vol d'oiseau, la distance de A à B à C ne sera pas différente de la distance de B à C à A. Celles-ci seront considérées dans un contexte de combinaison.
Les combinaisons sont considérées comme des doublons les unes des autres. Alors que, dans un contexte de permutation, ils seront considérés comme uniques.
Et donc, comme vous pouvez le voir, une serrure à combinaison devrait vraiment être une serrure à permutation car dans ce cas, l'ordre compte, ce qui en fait une permutation, pas une combinaison.
La deuxième question ou dimension qui compte est " une fois qu'un article est sélectionné, peut-il être sélectionné à nouveau ?" Par exemple, si nous choisissons A comme premier entrepôt, pouvons-nous choisir à nouveau A, ou devons-nous choisir des éléments uniques à chaque fois ?
Le terme que nous utilisons ici est « avec remplacement » ou « sans remplacement ». Donc, si un article peut être choisi à nouveau, c'est avec remplacement, ce qui signifie que vous le choisissez. Et dans un sens, il retourne dans le bac de sélection et est à nouveau sélectionné. Si la réponse est non, c'est sans remplacement.
Et donc, vous pouvez voir dans cette solution que les permutations avec remplacement sont les moins contraignantes. C'est donc celui qui nous donne 216 ensembles uniques. Et les combinaisons sans remplacement sont les plus restrictives nous donnant 20.
Nous allons simplement utiliser ces formules pour vérifier nos résultats Power Query . Nous nous souviendrons donc de 216, 120, 56 et 20. Passons maintenant à Power Query et voyons comment cette analyse combinatoire se déroule.
Analyse combinatoire : Permutations dans Power Query
Dans Power Query, j'ai ici un cas très simple avec six entrepôts nommés.
Et j'ai développé cette fonction Power Query M, que j'ai utilisée pour traiter les combinaisons et les permutations.
Tout d'abord, je vais développer ce premier cas d'utilisation, qui est les permutations avec replacement , le moins restrictif du groupe. La façon de le faire dans Power Query est de prendre cette table Warehouses et de la référencer (dans DAX, nous utilisons CROSSJOIN ).
Je vais appeler cela, Per w Rep (permutations avec remplacement).
Il existe plusieurs façons d'effectuer une jointure croisée dans Power Query. Le moyen le plus simple que j'ai trouvé consiste simplement à ajouter une colonne , puis une colonne personnalisée . Dans la formule de colonne personnalisée, référencez la table Entrepôts .
Et ce que nous trouverons lorsque nous cliquerons sur OK, c'est qu'il génère une table imbriquée.
Ensuite, nous développons cela et décochons le nom Utiliser les colonnes d'origine comme préfixe .
Et nous obtenons ce Location.1 , qui est toutes les combinaisons possibles de deux. Il prend donc les six premières références contre les six autres combinaisons. Le deuxième six fait la même chose jusqu'à ce que nous ayons 36 ensembles différents.
Nous pouvons faire le troisième en recommençant. Nous allons donc ajouter une colonne, puis une colonne personnalisée, puis des entrepôts.
Et nous aurons les 216 lignes comme permutations avec remplacement.
Et vous pouvez voir d'ici, 3 colonnes, 216 rangées.
Le cas d'utilisation suivant est celui des permutations sans remplacement . Ce à quoi nous pensons ici est fondamentalement tout ce qui a un élément répété. Donc, dans ce tableau, nous allons regarder de la ligne 1 à la ligne 8.
Pour ce faire, nous allons jeter un œil à cette fonction, fxSortAndIsDistinct .
Dans l'éditeur avancé, vous pouvez voir que cela demande essentiellement une table, puis il fait un SortLocs . Mais la partie importante ici pour le "avec remplacement" ou "sans remplacement" est qu'il s'agit d'une fonction IsDistinct . Ce que cela fait, c'est simplement prendre une liste d'éléments et déterminer vrai ou faux, s'il est distinct ou s'il a des doublons dans la liste des éléments.
Nous allons donc ici, sélectionnez le Perm w Rep et appuyez sur Invoke .
Cela nous donnera ces deux nouvelles colonnes, SortLocs et IsDistinct . Maintenant, rappelez-vous que les huit premiers enregistrements avaient des doublons et que le neuvième enregistrement était la première fois que nous avons vu le distinct . C'est pourquoi la neuvième ligne ici est la première qui apparaît comme vraie.
Si nous repensons aux chiffres que nous avions sur les calculs factoriels, nous nous attendons à 120 enregistrements si nous supprimons les enregistrements non distincts. Alors, essayons de filtrer ici et de retirer le FAUX.
Ce faisant, nous obtenons ici exactement les 120 lignes que nous attendons. Maintenant, renommez ceci en Perm wo Rep (permutation sans remplacement).
Analyse combinatoire : combinaisons dans Power Query
Maintenant, nous allons faire les combinaisons avec replacement . Pour ce faire, nous recommençons simplement le processus et répétons l'étape (fonction invoquée). C'est donc normal que nous ayons des doublons, mais nous ne voulons pas d'ensembles contenant les mêmes éléments , mais dans un ordre différent.
Dans ce cas, lorsque nous parlons de combinaisons. Si vous vous souvenez que ABC est égal à BCA est égal à CAB, ceux-ci sont tous considérés comme des doublons les uns des autres. Et la façon dont nous déterminons cela est à travers la fonction Sort ( fxSortAndIsDistinct ).
Si nous revenons à la fonction dans l'éditeur avancé, nous verrons pour cette deuxième colonne que nous avons pris cette liste et l'avons triée par ordre alphabétique. Ensuite, nous avons extrait les valeurs délimitées par des virgules de cette liste. Maintenant, nous avons chaque ensemble trié par ordre alphabétique. Nous avons normalisé l'ordre pour faciliter la recherche de doublons.
Maintenant, si nous revenons à cette fonction invoquée, rappelez-vous que nous recherchons ici 56 enregistrements. Nous prenons donc ce type d'emplacement ( SortLocs ) et supprimons nos doublons .
Avec cela, nous obtenons 56 lignes.
Et donc, c'est notre troisième cas d'utilisation. Renommez ceci en CC w Rep (combinaisons avec remplacement).
Terminons celui-ci en reprenant ce tableau de permutations avec remplacement (Perm w Rep) et faisons le même schéma (invoke). Ensuite, nous allons supprimer les doublons (colonne SortLocs) car il s'agit d'une combinaison et l'ordre n'a pas d'importance. C'est sans remplacement, nous ne voulons donc que la liste distincte . Donc, nous cliquons sur FALSE dans la colonne IsDistinct.
Avec cela, nous obtenons 20 enregistrements. Et maintenant, nous avons nos quatre cas d'utilisation.
Tri des colonnes de la table de dates dans LuckyTemplates
Guide du débutant sur le code M dans LuckyTemplates
Convertir la fonction de table de dates en une requête de table dans LuckyTemplates
Conclusion
Nous avons donc maintenant nos quatre cas d'utilisation. Vous pouvez vraiment voir à quel point cela est puissant en termes de développement de cette analyse combinatoire qui vous donne le contrôle sur le remplacement et les éléments distincts.
Ceci est même applicable dans certains cas plus complexes où vous avez un remplacement partiel, ou peut-être sélectionnez un élément en double pour la première fois, mais pas la deuxième fois. Vous pouvez toujours gérer cela correctement dans Power Query .
J'espère que vous avez trouvé cela utile. Consultez les liens ci-dessous pour plus de contenu. Vous pouvez également regarder la vidéo complète de ce tutoriel ci-dessous.
Tous mes vœux!
Qu'est-ce que le self en Python ? Exemples concrets
Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.
Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.
Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.
Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.
Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.
Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.
Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.
Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.
Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir