masteripper Δημοσ. 7 Δεκεμβρίου 2021 Δημοσ. 7 Δεκεμβρίου 2021 γεια χαρα Έχω 1 πρόβλημα της παρακάτω μορφής . Έχουμε 2 στήλες Χ Υ <--- Κεφαλίδα Α Α Β Β Α Β Β Α Τωρα το θέμα είναι ότι χρειάζομαι να κάνω 1 permutation ώστε να πάρω όλες τις παραγόμενες στήλες στις οποίες εαν Χ = Υ τότε απλώς επαναλαμβάνεται ειδάλλως γίνεται ανάπτυξη: δλδ Χ Υ Ζ W Α Α Α A Β Β Β B Α Α Β B Β A B A Καμμιά ιδέα ? 1
DrKo Δημοσ. 7 Δεκεμβρίου 2021 Δημοσ. 7 Δεκεμβρίου 2021 Θα πρέπει να το πας είτε μέσω `numpy`, χρησιμοποιώντας itertools (ή παρόμοιο package) ή να κάνεις `Multindexing` στο `DataFrame` σου.
masteripper Δημοσ. 7 Δεκεμβρίου 2021 Μέλος Δημοσ. 7 Δεκεμβρίου 2021 1 λεπτό πριν, DrKo είπε Θα πρέπει να το πας είτε μέσω `numpy`, χρησιμοποιώντας itertools (ή παρόμοιο package) ή να κάνεις `Multindexing` στο `DataFrame` σου. To multindex δεν το γνώριζα αλλα το Itertools κάνει ανάπτυξη όπως όλα vertically...εγω θέλω horizontally
DrKo Δημοσ. 7 Δεκεμβρίου 2021 Δημοσ. 7 Δεκεμβρίου 2021 15 λεπτά πριν, masteripper είπε όλα vertically...εγω θέλω horizontally Μπορείς να το σπάσεις σε horizontal. Εφόσον είναι permutations, κάθε "vertical ομάδα" θα έχει ίδιο αριθμό από entries. Τα αναπτύσεις/κάνεις-reshape σε horizontal και μετά αφαιρείς ό,τι δεν χρειάζεσαι (για να μην χαλάσεις τον ίδιο αριθμό κάθε "vertical ομάδας" ). Υ. Γ. Αν και τώρα που το ξαναβλέπω, δεν χρειάζεσαι να αφαιρέσεις τίποτα. Απλά θα κάνεις ένα reshape.
archer100 Δημοσ. 7 Δεκεμβρίου 2021 Δημοσ. 7 Δεκεμβρίου 2021 1 ώρα πριν, masteripper είπε Τωρα το θέμα είναι ότι χρειάζομαι να κάνω 1 permutation ώστε να πάρω όλες τις παραγόμενες στήλες στις οποίες εαν Χ = Υ τότε απλώς επαναλαμβάνεται ειδάλλως γίνεται ανάπτυξη: δλδ Χ Υ Ζ W Α Α Α A Β Β Β B Α Α Β B Β A B A Καμμιά ιδέα ? Μπορεις να διευκρινισεις λιγο περισσοτερο πως ακριβως δουλευει αυτη η συνθηκη;
masteripper Δημοσ. 7 Δεκεμβρίου 2021 Μέλος Δημοσ. 7 Δεκεμβρίου 2021 (επεξεργασμένο) 16 λεπτά πριν, archer100 είπε Μπορεις να διευκρινισεις λιγο περισσοτερο πως ακριβως δουλευει αυτη η συνθηκη; Κοίτα ας πούμε ότι όλα αυτά αντιπροσωπεύουν συνθήκες του τύπου ΕΑΝ Χ και Υ είναι ίδια τότε εγώ θα θεωρήσω ότι η τιμή που παρέχεται είναι σωστή και θα εκλάβω ότι αυτή είναι η σωστή (και κάπου εδώ θα τελείωνε η υπόθεση καθώς εγώ θα είχα μια μοναδική τιμή) ΕΑΝ όμως X <> Y τότε θέλω όλες τις προηγούμενες τιμές (και τις επόμενες) "καλές" τιμές και μια ανάπτυξη που θα ικανοποιεί όλες τις περιπτώσεις. Χ Υ Α Α <-- Α Τιμή Β Β <-- Β Τιμή Α Β <-- Τώρα έχω μια κατάσταση Α ή Β Β Α <-- Ομοια έχω μια κατάσταση Α ή Β Τώρα με την παρακάτω ανάπτυξη παίρνω όλες τις δυνατές τιμές Χ Υ Ζ W Α Α Α A <- Η τιμη είναι Α Β Β Β B <- Η τιμη είναι Β Α Α Β B <-| |--> ανάπτυξη Β A B A <-| ή καλύτερα Α Β Α ή Β (OR) Α ή Β (OR) Όλα αυτά είναι εντελώς δυναμικά καθώς μπορεί να έχω n γραμμές με κ OR οπότε η ανάπτυξη μπορεί να πάει στον θεό. Επεξ/σία 7 Δεκεμβρίου 2021 από masteripper
archer100 Δημοσ. 7 Δεκεμβρίου 2021 Δημοσ. 7 Δεκεμβρίου 2021 4 λεπτά πριν, masteripper είπε Κοίτα ας πούμε ότι όλα αυτά αντιπροσωπεύουν συνθήκες του τύπου ΕΑΝ Χ και Υ είναι ίδια τότε εγώ θα θεωρήσω ότι η τιμή που παρέχεται είναι σωστή και θα εκλάβω ότι αυτή είναι η σωστή (και κάπου εδώ θα τελείωνε η υπόθεση καθώς εγώ θα είχα μια μοναδική τιμή) ΕΑΝ όμως X <> Y τότε θέλω όλες τις προηγούμενες τιμές (και τις επόμενες) "καλές" τιμές και μια ανάπτυξη που θα ικανοποιεί όλες τις περιπτώσεις. Χ Υ Α Α <-- Α Τιμή Β Β <-- Β Τιμή Α Β <-- Τώρα έχω μια κατάσταση Α ή Β Β Α <-- Ομοια έχω μια κατάσταση Α ή Β Τώρα με την παρακάτω ανάπτυξη παίρνω όλες τις δυνατές τιμές Χ Υ Ζ W Α Α Α A <- Η τιμη είναι Α Β Β Β B <- Η τιμη είναι Β Α Α Β B <-| |--> ανάπτυξη Β A B A <-| ή καλύτερα Α Β Α ή Β (OR) Α ή Β (OR) Όλα αυτά είναι εντελώς δυναμικά καθώς μπορεί να έχω n γραμμές με κ OR οπότε η ανάπτυξη μπορεί να πάει στον θεό Thanks. Μπορεις να μεταφρασεις την περιπτωση που ειναι διαφορετικα σε συνθηκες dataframe περιγραφικα; Πχ Εαν X[i] == Y[i] == Α θέλω Ζ[i] = Α και W[i] = Α (η απλη περιπτωση) Ειδαλλως; Θελουμε τοσες νεες γραμμες ωστε να περιλαμβανονται ολα τα permutations? πχ Εαν X[i] = Α και Y[i] = Β τοτε τι θελουμε ως Ζ[i] και W[i] στην υπαρχουσα η/και στις επομενες γραμμες;
masteripper Δημοσ. 7 Δεκεμβρίου 2021 Μέλος Δημοσ. 7 Δεκεμβρίου 2021 11 λεπτά πριν, archer100 είπε πχ Εαν X[i] = Α και Y[i] = Β τοτε τι θελουμε ως Ζ[i] και W[i] στην υπαρχουσα η/και στις επομενες γραμμες; Για κάθε περίπτωση θα έχουμε την ανάπτυξη του 1 Or ---> 2 Στήλες 2 Or --> 4 Στήλες 3 Or --> 8 Στήλες Εαν η μνήμη μου δεν γελάει έχουμε γεωμετρική πρόοδο του 2 (OR 2 τιμές) για να το γράψω και λίγο ακόμα πιο περιγραφικά Χ Υ Α Α <-- Α Τιμή Β Β <-- Β Τιμή Α Β <-- Τώρα έχω μια κατάσταση Α ή Β Β Α <-- Τώρα έχω μια κατάσταση Α ή Β Β Β <-- Β Τιμή Β Β <-- Β Τιμή Α Α <-- Α Τιμή οπότε το παραχθεν Χ Υ Ζ W Α Α Α A Β Β Β B Α Α Β B Β A B A Β Β Β Β Β Β Β Β Α Α Α Α
DrKo Δημοσ. 7 Δεκεμβρίου 2021 Δημοσ. 7 Δεκεμβρίου 2021 Αυτό που βλέπω είναι ότι δεν σου χρειάζονται τα extra columns. Εάν έχεις μόνο δύο outcomes, τότε μπορείς να κάνεις split το DataFrame σε δύο ομάδες: α) τα rows που και τα δυο columns είναι τα ίδια, β) τα rows όπου τα δύο columns είναι διαφορετικά. Εάν παρατηρήσεις, σε όλα τα παραδείγματά σου, το X == Z και το Y == W. Οπότε, γιατί να τα κάνεις duplicate; @masteripper Μπορείς να δώσεις ένα παράδειγμα όπου δεν θα γίνει duplicate των αρχικών X και Y; Επίσης, τι ακριβώς εννοείς με το "ανάπτυξη"; Μπορείς να δώσεις ένα παράδειγμα;
masteripper Δημοσ. 7 Δεκεμβρίου 2021 Μέλος Δημοσ. 7 Δεκεμβρίου 2021 (επεξεργασμένο) 41 λεπτά πριν, DrKo είπε Αυτό που βλέπω είναι ότι δεν σου χρειάζονται τα extra columns. Εάν έχεις μόνο δύο outcomes, τότε μπορείς να κάνεις split το DataFrame σε δύο ομάδες: α) τα rows που και τα δυο columns είναι τα ίδια, β) τα rows όπου τα δύο columns είναι διαφορετικά. Εάν παρατηρήσεις, σε όλα τα παραδείγματά σου, το X == Z και το Y == W. Οπότε, γιατί να τα κάνεις duplicate; @masteripper Μπορείς να δώσεις ένα παράδειγμα όπου δεν θα γίνει duplicate των αρχικών X και Y; Επίσης, τι ακριβώς εννοείς με το "ανάπτυξη"; Μπορείς να δώσεις ένα παράδειγμα; Σε μπερδεύει ότι είναι μόνο 2 OR ας κάνω με 3 Χ Υ <--- Κεφαλίδα Α Α Β Β Α Β Β Α Β Β Α Β Α Α Οπότε θα γίνει Χ Υ Ζ W K L M N Α Α Α A Α Α Α A Β Β Β B Β Β Β B Α A Α A B Β Α B A Β B Α Β A Α B Β Β Β Β Β Β Β Β Α Α B B Β B A A Α Α Α Α Α Α Α Α και φιλτραρισμένα όλοι οι πιθανοί συνδυασμοί για 3 OR Α A Α A B Β B B A Β B Α Β A Α B Α Α B B Β B A A (A,A,A), (A,B,A),(A,B,B),(A,A,B),(B,B,B),(B,A,B),(B,A,A),(B,B,A) Επίσης όσον αφορά περίπτωση που δεν έχουμε duplicate Χ Υ <--- Κεφαλίδα Α Α Β Β A A A A Σε όλες τις περιπτώσεις έχω Χi = Yi οπότε τελικά εγώ θα πω (επιλογές) 1η -->Α 2η -->Β 3η -->Α 4η -->Α ... κ.ο.κ Επεξ/σία 7 Δεκεμβρίου 2021 από masteripper
Επισκέπτης Δημοσ. 7 Δεκεμβρίου 2021 Δημοσ. 7 Δεκεμβρίου 2021 (επεξεργασμένο) γιατί μπλέκεις με or? επαναληπτικές διατάξεις 2 στοιχείων είναι, εφόσον είναι 2, έχουμε επαναληπτικές διατάξεις 2 ανά κ=1, κ=2, κ=3, οι επαναληπτικές διατάξεις δίνονται από το n^k , άρα είναι 2^1, 2^2, 2^3 κτλ. .Δεν ξέρω αν υπάρχουν βιβλιοθήκες συνδυαστικής στην python αλλά αν δεν παίζει φτιάξε μια συνάρτηση που υπολογίζει τος διατάξεις και μετά πολλαπλασίασε τα σαν διανύσματα. (καρτεσιανό γινόμενο, αυτό πιστεύω θα το κάνει κάποια βιβλιοθήκη της python). Επεξ/σία 7 Δεκεμβρίου 2021 από Ussr
archer100 Δημοσ. 7 Δεκεμβρίου 2021 Δημοσ. 7 Δεκεμβρίου 2021 Το προβλημα δεν ειναι ακομη ξεκαθαρο. Μπορεις να το παρουσιασεις με πιο απλες δομες, πχ λιστες; Δηλαδη εχω input αυτο και θελω output αυτο και τα διαφορετικα σεναρια Σε καθε περιπτωση το εργαλειο που θα χρειαστεις ειναι το itertools.permutations αν σε ενδιαφερει η διαταξη των στοιχειων και το itertools.combinations αν σε ενδιαφερει μονο ο συνδυασμος χωρις να εχει σημασια η διαταξη
DrKo Δημοσ. 7 Δεκεμβρίου 2021 Δημοσ. 7 Δεκεμβρίου 2021 1 ώρα πριν, masteripper είπε Σε μπερδεύει ότι είναι μόνο 2 OR ας κάνω με 3 Χ Υ <--- Κεφαλίδα Α Α Β Β Α Β Β Α Β Β Α Β Α Α Οπότε θα γίνει Χ Υ Ζ W K L M N Α Α Α A Α Α Α A Β Β Β B Β Β Β B Α A Α A B Β Α B A Β B Α Β A Α B Β Β Β Β Β Β Β Β Α Α B B Β B A A Α Α Α Α Α Α Α Α και φιλτραρισμένα όλοι οι πιθανοί συνδυασμοί για 3 OR Α A Α A B Β B B A Β B Α Β A Α B Α Α B B Β B A A (A,A,A), (A,B,A),(A,B,B),(A,A,B),(B,B,B),(B,A,B),(B,A,A),(B,B,A) Επίσης όσον αφορά περίπτωση που δεν έχουμε duplicate Χ Υ <--- Κεφαλίδα Α Α Β Β A A A A Σε όλες τις περιπτώσεις έχω Χi = Yi οπότε τελικά εγώ θα πω (επιλογές) 1η -->Α 2η -->Β 3η -->Α 4η -->Α ... κ.ο.κ Έχεις όμως δύο τιμές, οι οποίες είναι στο Χ και Υ. Προσωπική μου γνώμη είναι ότι έχεις πέσει σε XY πρόβλημα και δεν μπορείς να το δεις καθαρά τώρα. Όπως το βλέπω εγώ, δεν χρειάζεται να κάνεις αυτό που λες. Μπορείς κάλλιστα να το υπολογίζεις on-the-fly με το itertools. Εάν θέλεις να το αποθηκεύσεις, μπορείς να υπολογίσεις τα πάντα και να τα κάνεις μετά DataFrame. Εάν θέλεις να το κάνεις one liner, κάνε το πρώτα με πολλές γραμμές και μετά το κάνεις μία γραμμή.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα