Map list to bin numbersquantilization (if that is a word)Map efficiently over duplicates in listGenerating a list of cubefree numbersIs there an equivalent to MATLAB's linspace?Convert a list of hexadecimal numbers to decimalTaking one list Mod a second listlist of items and group of alternative itemsHow find numbers in this list of inequalities?Selecting list entries with a True False index list of similar lengthReplace element in array by checking condition in another listAttempting to fill a table with the number of elements in each bin and make a table with the elements in the bins?

Is it the same airport YUL and YMQ in Canada?

Why is Arya visibly scared in the library in S8E3?

If an enemy is just below a 10-foot-high ceiling, are they in melee range of a creature on the ground?

Stark VS Thanos

What does air vanishing on contact sound like?

What word means "to make something obsolete"?

Visa for volunteering in England

If 1. e4 c6 is considered as a sound defense for black, why is 1. c3 so rare?

I’ve officially counted to infinity!

Is thermodynamics only applicable to systems in equilibrium?

When and why did journal article titles become descriptive, rather than creatively allusive?

How do i show this equivalence without using integration?

I caught several of my students plagiarizing. Could it be my fault as a teacher?

Unexpected email from Yorkshire Bank

Is it cheaper to drop cargo than to land it?

How do I tell my manager that his code review comment is wrong?

nth number which is divisible by all the numbers from 1 to 10

Applying a function to a nested list

Meaning of "individuandum"

Why is the SNP putting so much emphasis on currency plans?

My ID is expired, can I fly to the Bahamas with my passport?

How did Arya manage to disguise herself?

Does hiding behind 5-ft-wide cover give full cover?

Attending a conference where my ex-supervisor and his collaborator are present, should I attend?



Map list to bin numbers


quantilization (if that is a word)Map efficiently over duplicates in listGenerating a list of cubefree numbersIs there an equivalent to MATLAB's linspace?Convert a list of hexadecimal numbers to decimalTaking one list Mod a second listlist of items and group of alternative itemsHow find numbers in this list of inequalities?Selecting list entries with a True False index list of similar lengthReplace element in array by checking condition in another listAttempting to fill a table with the number of elements in each bin and make a table with the elements in the bins?













4












$begingroup$


Does WL have the equivalent of Matlab's discretize or NumPy's digitize? I.e., a function that takes a length-N list and a list of bin edges and returns a length-N list of bin numbers, mapping each list item to its bin number?










share|improve this question











$endgroup$











  • $begingroup$
    HistogramList seems similar. This could also be done efficiently with GroupBy and some easy little Compile-d selection determiner. Or maybe hit it first with Sort then write something that only checks the next bin up. Again, can be easily Compile-d.
    $endgroup$
    – b3m2a1
    Apr 8 at 23:07











  • $begingroup$
    I need it to work like a map (in terms of the order of the items in the resulting list). Of course it is possible to write something ...
    $endgroup$
    – Alan
    Apr 9 at 0:13











  • $begingroup$
    Related: 140577
    $endgroup$
    – Carl Woll
    Apr 9 at 3:50







  • 1




    $begingroup$
    Did you try BinCounts? I guess it is what you need.
    $endgroup$
    – Rom38
    Apr 9 at 4:52










  • $begingroup$
    @Rom38 You probably meant BinLists, right?
    $endgroup$
    – Henrik Schumacher
    Apr 9 at 5:55















4












$begingroup$


Does WL have the equivalent of Matlab's discretize or NumPy's digitize? I.e., a function that takes a length-N list and a list of bin edges and returns a length-N list of bin numbers, mapping each list item to its bin number?










share|improve this question











$endgroup$











  • $begingroup$
    HistogramList seems similar. This could also be done efficiently with GroupBy and some easy little Compile-d selection determiner. Or maybe hit it first with Sort then write something that only checks the next bin up. Again, can be easily Compile-d.
    $endgroup$
    – b3m2a1
    Apr 8 at 23:07











  • $begingroup$
    I need it to work like a map (in terms of the order of the items in the resulting list). Of course it is possible to write something ...
    $endgroup$
    – Alan
    Apr 9 at 0:13











  • $begingroup$
    Related: 140577
    $endgroup$
    – Carl Woll
    Apr 9 at 3:50







  • 1




    $begingroup$
    Did you try BinCounts? I guess it is what you need.
    $endgroup$
    – Rom38
    Apr 9 at 4:52










  • $begingroup$
    @Rom38 You probably meant BinLists, right?
    $endgroup$
    – Henrik Schumacher
    Apr 9 at 5:55













4












4








4





$begingroup$


Does WL have the equivalent of Matlab's discretize or NumPy's digitize? I.e., a function that takes a length-N list and a list of bin edges and returns a length-N list of bin numbers, mapping each list item to its bin number?










share|improve this question











$endgroup$




Does WL have the equivalent of Matlab's discretize or NumPy's digitize? I.e., a function that takes a length-N list and a list of bin edges and returns a length-N list of bin numbers, mapping each list item to its bin number?







list-manipulation data






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Apr 9 at 5:27









user64494

3,65311222




3,65311222










asked Apr 8 at 22:52









AlanAlan

6,6551125




6,6551125











  • $begingroup$
    HistogramList seems similar. This could also be done efficiently with GroupBy and some easy little Compile-d selection determiner. Or maybe hit it first with Sort then write something that only checks the next bin up. Again, can be easily Compile-d.
    $endgroup$
    – b3m2a1
    Apr 8 at 23:07











  • $begingroup$
    I need it to work like a map (in terms of the order of the items in the resulting list). Of course it is possible to write something ...
    $endgroup$
    – Alan
    Apr 9 at 0:13











  • $begingroup$
    Related: 140577
    $endgroup$
    – Carl Woll
    Apr 9 at 3:50







  • 1




    $begingroup$
    Did you try BinCounts? I guess it is what you need.
    $endgroup$
    – Rom38
    Apr 9 at 4:52










  • $begingroup$
    @Rom38 You probably meant BinLists, right?
    $endgroup$
    – Henrik Schumacher
    Apr 9 at 5:55
















  • $begingroup$
    HistogramList seems similar. This could also be done efficiently with GroupBy and some easy little Compile-d selection determiner. Or maybe hit it first with Sort then write something that only checks the next bin up. Again, can be easily Compile-d.
    $endgroup$
    – b3m2a1
    Apr 8 at 23:07











  • $begingroup$
    I need it to work like a map (in terms of the order of the items in the resulting list). Of course it is possible to write something ...
    $endgroup$
    – Alan
    Apr 9 at 0:13











  • $begingroup$
    Related: 140577
    $endgroup$
    – Carl Woll
    Apr 9 at 3:50







  • 1




    $begingroup$
    Did you try BinCounts? I guess it is what you need.
    $endgroup$
    – Rom38
    Apr 9 at 4:52










  • $begingroup$
    @Rom38 You probably meant BinLists, right?
    $endgroup$
    – Henrik Schumacher
    Apr 9 at 5:55















$begingroup$
HistogramList seems similar. This could also be done efficiently with GroupBy and some easy little Compile-d selection determiner. Or maybe hit it first with Sort then write something that only checks the next bin up. Again, can be easily Compile-d.
$endgroup$
– b3m2a1
Apr 8 at 23:07





$begingroup$
HistogramList seems similar. This could also be done efficiently with GroupBy and some easy little Compile-d selection determiner. Or maybe hit it first with Sort then write something that only checks the next bin up. Again, can be easily Compile-d.
$endgroup$
– b3m2a1
Apr 8 at 23:07













$begingroup$
I need it to work like a map (in terms of the order of the items in the resulting list). Of course it is possible to write something ...
$endgroup$
– Alan
Apr 9 at 0:13





$begingroup$
I need it to work like a map (in terms of the order of the items in the resulting list). Of course it is possible to write something ...
$endgroup$
– Alan
Apr 9 at 0:13













$begingroup$
Related: 140577
$endgroup$
– Carl Woll
Apr 9 at 3:50





$begingroup$
Related: 140577
$endgroup$
– Carl Woll
Apr 9 at 3:50





1




1




$begingroup$
Did you try BinCounts? I guess it is what you need.
$endgroup$
– Rom38
Apr 9 at 4:52




$begingroup$
Did you try BinCounts? I guess it is what you need.
$endgroup$
– Rom38
Apr 9 at 4:52












$begingroup$
@Rom38 You probably meant BinLists, right?
$endgroup$
– Henrik Schumacher
Apr 9 at 5:55




$begingroup$
@Rom38 You probably meant BinLists, right?
$endgroup$
– Henrik Schumacher
Apr 9 at 5:55










3 Answers
3






active

oldest

votes


















3












$begingroup$

Here's a version based on Nearest:



digitize[edges_] := DigitizeFunction[edges, Nearest[edges -> "Index"]]
digitize[data_, edges_] := digitize[edges][data]

DigitizeFunction[edges_, nf_NearestFunction][data_] := With[init = nf[data][[All, 1]],
init + UnitStep[data - edges[[init]]] - 1
]


For example:



SeedRandom[1]
data = RandomReal[10, 10]
digitize[data, 2, 4, 5, 7, 8]



8.17389, 1.1142, 7.89526, 1.87803, 2.41361, 0.657388, 5.42247, 2.31155, 3.96006, 7.00474



5, 0, 4, 0, 1, 0, 3, 1, 1, 4




Note that I broke up the definition of digitize into two pieces, so that if you do this for multiple data sets with the same edges list, you only need to compute the nearest function once.






share|improve this answer











$endgroup$




















    5












    $begingroup$

    This is a very quick-n-dirty, but may serve as a simple example.



    This creates a piecewise function following the first definition in Matlab's discretize documentation, then applies that to the data.



    disc[data_, edges_] := Module[e = Partition[edges, 2, 1], p, l,
    l = Length@e;
    p=Piecewise[Append[Table[i, e[[i, 1]] <= x < e[[i, 2]], i, l - 1]
    , l,e[[l, 1]] <= x <= e[[l, 2]]]
    , "NaN"];
    Table[p, x, data]];


    From the first example in the above referenced documentation:



    data=1, 1, 2, 3, 6, 5, 8, 10, 4, 4;
    edges=2, 4, 6, 8, 10;

    disc[data,edges]



    NaN,NaN,1,1,3,2,4,4,2,2




    I'm sure there are more efficient/elegant solutions, and will revisit as time permits.






    share|improve this answer











    $endgroup$




















      2












      $begingroup$

      You may also use Interpolation with InterpolationOrder -> 0. However, employing Nearest as Carl Woll did will usually be much faster.



      First, we prepare the interplating function.



      m = 20;
      binboundaries = Join[-1., Sort[RandomReal[-1, 1, m - 1]], 1.];

      f = Interpolation[Transpose[binboundaries, Range[0, m]], InterpolationOrder -> 0];


      Now you can apply it to lists of values as follows:



      vals = RandomReal[-1, 1, 1000]; 
      Round[f[vals]]





      share|improve this answer









      $endgroup$













        Your Answer








        StackExchange.ready(function()
        var channelOptions =
        tags: "".split(" "),
        id: "387"
        ;
        initTagRenderer("".split(" "), "".split(" "), channelOptions);

        StackExchange.using("externalEditor", function()
        // Have to fire editor after snippets, if snippets enabled
        if (StackExchange.settings.snippets.snippetsEnabled)
        StackExchange.using("snippets", function()
        createEditor();
        );

        else
        createEditor();

        );

        function createEditor()
        StackExchange.prepareEditor(
        heartbeatType: 'answer',
        autoActivateHeartbeat: false,
        convertImagesToLinks: false,
        noModals: true,
        showLowRepImageUploadWarning: true,
        reputationToPostImages: null,
        bindNavPrevention: true,
        postfix: "",
        imageUploader:
        brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
        contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
        allowUrls: true
        ,
        onDemand: true,
        discardSelector: ".discard-answer"
        ,immediatelyShowMarkdownHelp:true
        );



        );













        draft saved

        draft discarded


















        StackExchange.ready(
        function ()
        StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f194844%2fmap-list-to-bin-numbers%23new-answer', 'question_page');

        );

        Post as a guest















        Required, but never shown

























        3 Answers
        3






        active

        oldest

        votes








        3 Answers
        3






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        3












        $begingroup$

        Here's a version based on Nearest:



        digitize[edges_] := DigitizeFunction[edges, Nearest[edges -> "Index"]]
        digitize[data_, edges_] := digitize[edges][data]

        DigitizeFunction[edges_, nf_NearestFunction][data_] := With[init = nf[data][[All, 1]],
        init + UnitStep[data - edges[[init]]] - 1
        ]


        For example:



        SeedRandom[1]
        data = RandomReal[10, 10]
        digitize[data, 2, 4, 5, 7, 8]



        8.17389, 1.1142, 7.89526, 1.87803, 2.41361, 0.657388, 5.42247, 2.31155, 3.96006, 7.00474



        5, 0, 4, 0, 1, 0, 3, 1, 1, 4




        Note that I broke up the definition of digitize into two pieces, so that if you do this for multiple data sets with the same edges list, you only need to compute the nearest function once.






        share|improve this answer











        $endgroup$

















          3












          $begingroup$

          Here's a version based on Nearest:



          digitize[edges_] := DigitizeFunction[edges, Nearest[edges -> "Index"]]
          digitize[data_, edges_] := digitize[edges][data]

          DigitizeFunction[edges_, nf_NearestFunction][data_] := With[init = nf[data][[All, 1]],
          init + UnitStep[data - edges[[init]]] - 1
          ]


          For example:



          SeedRandom[1]
          data = RandomReal[10, 10]
          digitize[data, 2, 4, 5, 7, 8]



          8.17389, 1.1142, 7.89526, 1.87803, 2.41361, 0.657388, 5.42247, 2.31155, 3.96006, 7.00474



          5, 0, 4, 0, 1, 0, 3, 1, 1, 4




          Note that I broke up the definition of digitize into two pieces, so that if you do this for multiple data sets with the same edges list, you only need to compute the nearest function once.






          share|improve this answer











          $endgroup$















            3












            3








            3





            $begingroup$

            Here's a version based on Nearest:



            digitize[edges_] := DigitizeFunction[edges, Nearest[edges -> "Index"]]
            digitize[data_, edges_] := digitize[edges][data]

            DigitizeFunction[edges_, nf_NearestFunction][data_] := With[init = nf[data][[All, 1]],
            init + UnitStep[data - edges[[init]]] - 1
            ]


            For example:



            SeedRandom[1]
            data = RandomReal[10, 10]
            digitize[data, 2, 4, 5, 7, 8]



            8.17389, 1.1142, 7.89526, 1.87803, 2.41361, 0.657388, 5.42247, 2.31155, 3.96006, 7.00474



            5, 0, 4, 0, 1, 0, 3, 1, 1, 4




            Note that I broke up the definition of digitize into two pieces, so that if you do this for multiple data sets with the same edges list, you only need to compute the nearest function once.






            share|improve this answer











            $endgroup$



            Here's a version based on Nearest:



            digitize[edges_] := DigitizeFunction[edges, Nearest[edges -> "Index"]]
            digitize[data_, edges_] := digitize[edges][data]

            DigitizeFunction[edges_, nf_NearestFunction][data_] := With[init = nf[data][[All, 1]],
            init + UnitStep[data - edges[[init]]] - 1
            ]


            For example:



            SeedRandom[1]
            data = RandomReal[10, 10]
            digitize[data, 2, 4, 5, 7, 8]



            8.17389, 1.1142, 7.89526, 1.87803, 2.41361, 0.657388, 5.42247, 2.31155, 3.96006, 7.00474



            5, 0, 4, 0, 1, 0, 3, 1, 1, 4




            Note that I broke up the definition of digitize into two pieces, so that if you do this for multiple data sets with the same edges list, you only need to compute the nearest function once.







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Apr 9 at 3:52

























            answered Apr 9 at 3:33









            Carl WollCarl Woll

            76.5k3100201




            76.5k3100201





















                5












                $begingroup$

                This is a very quick-n-dirty, but may serve as a simple example.



                This creates a piecewise function following the first definition in Matlab's discretize documentation, then applies that to the data.



                disc[data_, edges_] := Module[e = Partition[edges, 2, 1], p, l,
                l = Length@e;
                p=Piecewise[Append[Table[i, e[[i, 1]] <= x < e[[i, 2]], i, l - 1]
                , l,e[[l, 1]] <= x <= e[[l, 2]]]
                , "NaN"];
                Table[p, x, data]];


                From the first example in the above referenced documentation:



                data=1, 1, 2, 3, 6, 5, 8, 10, 4, 4;
                edges=2, 4, 6, 8, 10;

                disc[data,edges]



                NaN,NaN,1,1,3,2,4,4,2,2




                I'm sure there are more efficient/elegant solutions, and will revisit as time permits.






                share|improve this answer











                $endgroup$

















                  5












                  $begingroup$

                  This is a very quick-n-dirty, but may serve as a simple example.



                  This creates a piecewise function following the first definition in Matlab's discretize documentation, then applies that to the data.



                  disc[data_, edges_] := Module[e = Partition[edges, 2, 1], p, l,
                  l = Length@e;
                  p=Piecewise[Append[Table[i, e[[i, 1]] <= x < e[[i, 2]], i, l - 1]
                  , l,e[[l, 1]] <= x <= e[[l, 2]]]
                  , "NaN"];
                  Table[p, x, data]];


                  From the first example in the above referenced documentation:



                  data=1, 1, 2, 3, 6, 5, 8, 10, 4, 4;
                  edges=2, 4, 6, 8, 10;

                  disc[data,edges]



                  NaN,NaN,1,1,3,2,4,4,2,2




                  I'm sure there are more efficient/elegant solutions, and will revisit as time permits.






                  share|improve this answer











                  $endgroup$















                    5












                    5








                    5





                    $begingroup$

                    This is a very quick-n-dirty, but may serve as a simple example.



                    This creates a piecewise function following the first definition in Matlab's discretize documentation, then applies that to the data.



                    disc[data_, edges_] := Module[e = Partition[edges, 2, 1], p, l,
                    l = Length@e;
                    p=Piecewise[Append[Table[i, e[[i, 1]] <= x < e[[i, 2]], i, l - 1]
                    , l,e[[l, 1]] <= x <= e[[l, 2]]]
                    , "NaN"];
                    Table[p, x, data]];


                    From the first example in the above referenced documentation:



                    data=1, 1, 2, 3, 6, 5, 8, 10, 4, 4;
                    edges=2, 4, 6, 8, 10;

                    disc[data,edges]



                    NaN,NaN,1,1,3,2,4,4,2,2




                    I'm sure there are more efficient/elegant solutions, and will revisit as time permits.






                    share|improve this answer











                    $endgroup$



                    This is a very quick-n-dirty, but may serve as a simple example.



                    This creates a piecewise function following the first definition in Matlab's discretize documentation, then applies that to the data.



                    disc[data_, edges_] := Module[e = Partition[edges, 2, 1], p, l,
                    l = Length@e;
                    p=Piecewise[Append[Table[i, e[[i, 1]] <= x < e[[i, 2]], i, l - 1]
                    , l,e[[l, 1]] <= x <= e[[l, 2]]]
                    , "NaN"];
                    Table[p, x, data]];


                    From the first example in the above referenced documentation:



                    data=1, 1, 2, 3, 6, 5, 8, 10, 4, 4;
                    edges=2, 4, 6, 8, 10;

                    disc[data,edges]



                    NaN,NaN,1,1,3,2,4,4,2,2




                    I'm sure there are more efficient/elegant solutions, and will revisit as time permits.







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Apr 9 at 8:03

























                    answered Apr 9 at 0:38









                    ciaociao

                    17.6k138109




                    17.6k138109





















                        2












                        $begingroup$

                        You may also use Interpolation with InterpolationOrder -> 0. However, employing Nearest as Carl Woll did will usually be much faster.



                        First, we prepare the interplating function.



                        m = 20;
                        binboundaries = Join[-1., Sort[RandomReal[-1, 1, m - 1]], 1.];

                        f = Interpolation[Transpose[binboundaries, Range[0, m]], InterpolationOrder -> 0];


                        Now you can apply it to lists of values as follows:



                        vals = RandomReal[-1, 1, 1000]; 
                        Round[f[vals]]





                        share|improve this answer









                        $endgroup$

















                          2












                          $begingroup$

                          You may also use Interpolation with InterpolationOrder -> 0. However, employing Nearest as Carl Woll did will usually be much faster.



                          First, we prepare the interplating function.



                          m = 20;
                          binboundaries = Join[-1., Sort[RandomReal[-1, 1, m - 1]], 1.];

                          f = Interpolation[Transpose[binboundaries, Range[0, m]], InterpolationOrder -> 0];


                          Now you can apply it to lists of values as follows:



                          vals = RandomReal[-1, 1, 1000]; 
                          Round[f[vals]]





                          share|improve this answer









                          $endgroup$















                            2












                            2








                            2





                            $begingroup$

                            You may also use Interpolation with InterpolationOrder -> 0. However, employing Nearest as Carl Woll did will usually be much faster.



                            First, we prepare the interplating function.



                            m = 20;
                            binboundaries = Join[-1., Sort[RandomReal[-1, 1, m - 1]], 1.];

                            f = Interpolation[Transpose[binboundaries, Range[0, m]], InterpolationOrder -> 0];


                            Now you can apply it to lists of values as follows:



                            vals = RandomReal[-1, 1, 1000]; 
                            Round[f[vals]]





                            share|improve this answer









                            $endgroup$



                            You may also use Interpolation with InterpolationOrder -> 0. However, employing Nearest as Carl Woll did will usually be much faster.



                            First, we prepare the interplating function.



                            m = 20;
                            binboundaries = Join[-1., Sort[RandomReal[-1, 1, m - 1]], 1.];

                            f = Interpolation[Transpose[binboundaries, Range[0, m]], InterpolationOrder -> 0];


                            Now you can apply it to lists of values as follows:



                            vals = RandomReal[-1, 1, 1000]; 
                            Round[f[vals]]






                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Apr 9 at 6:05









                            Henrik SchumacherHenrik Schumacher

                            61.4k585171




                            61.4k585171



























                                draft saved

                                draft discarded
















































                                Thanks for contributing an answer to Mathematica Stack Exchange!


                                • Please be sure to answer the question. Provide details and share your research!

                                But avoid


                                • Asking for help, clarification, or responding to other answers.

                                • Making statements based on opinion; back them up with references or personal experience.

                                Use MathJax to format equations. MathJax reference.


                                To learn more, see our tips on writing great answers.




                                draft saved


                                draft discarded














                                StackExchange.ready(
                                function ()
                                StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f194844%2fmap-list-to-bin-numbers%23new-answer', 'question_page');

                                );

                                Post as a guest















                                Required, but never shown





















































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown

































                                Required, but never shown














                                Required, but never shown












                                Required, but never shown







                                Required, but never shown







                                Popular posts from this blog

                                Marja Vauras Lähteet | Aiheesta muualla | NavigointivalikkoMarja Vauras Turun yliopiston tutkimusportaalissaInfobox OKSuomalaisen Tiedeakatemian varsinaiset jäsenetKasvatustieteiden tiedekunnan dekaanit ja muu johtoMarja VaurasKoulutusvienti on kestävyys- ja ketteryyslaji (2.5.2017)laajentamallaWorldCat Identities0000 0001 0855 9405n86069603utb201588738523620927

                                Which is better: GPT or RelGAN for text generation?2019 Community Moderator ElectionWhat is the difference between TextGAN and LM for text generation?GANs (generative adversarial networks) possible for text as well?Generator loss not decreasing- text to image synthesisChoosing a right algorithm for template-based text generationHow should I format input and output for text generation with LSTMsGumbel Softmax vs Vanilla Softmax for GAN trainingWhich neural network to choose for classification from text/speech?NLP text autoencoder that generates text in poetic meterWhat is the interpretation of the expectation notation in the GAN formulation?What is the difference between TextGAN and LM for text generation?How to prepare the data for text generation task

                                Is this part of the description of the Archfey warlock's Misty Escape feature redundant?When is entropic ward considered “used”?How does the reaction timing work for Wrath of the Storm? Can it potentially prevent the damage from the triggering attack?Does the Dark Arts Archlich warlock patrons's Arcane Invisibility activate every time you cast a level 1+ spell?When attacking while invisible, when exactly does invisibility break?Can I cast Hellish Rebuke on my turn?Do I have to “pre-cast” a reaction spell in order for it to be triggered?What happens if a Player Misty Escapes into an Invisible CreatureCan a reaction interrupt multiattack?Does the Fiend-patron warlock's Hurl Through Hell feature dispel effects that require the target to be on the same plane as the caster?What are you allowed to do while using the Warlock's Eldritch Master feature?