Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Is `wsample` a proper name for a function like this?
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  7 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Satoru Logic  
View profile  
 More options Oct 10 2012, 11:33 pm
Newsgroups: comp.lang.python
From: Satoru Logic <satorulo...@gmail.com>
Date: Wed, 10 Oct 2012 20:33:16 -0700 (PDT)
Local: Wed, Oct 10 2012 11:33 pm
Subject: Is `wsample` a proper name for a function like this?
I came across a function named `wsample` in a `utils` package of my workplace recently.

The "w" in `wsample` stands for `weighted`, and it randomly selects an element from a container according to relative weights of all the elements.

In most articles and codes I saw online, a function like this is often named `weighted_random_choice`, which sounds *correct* to me.
So when I saw this `wsample` function, I considered it a improper name.
Because `wsample`makes me think of `random.sample`, which returns a list of randomly generated elements, not a element.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Terry Reedy  
View profile  
 More options Oct 11 2012, 12:39 am
Newsgroups: comp.lang.python
From: Terry Reedy <tjre...@udel.edu>
Date: Thu, 11 Oct 2012 00:33:35 -0400
Local: Thurs, Oct 11 2012 12:33 am
Subject: Re: Is `wsample` a proper name for a function like this?
On 10/10/2012 11:33 PM, Satoru Logic wrote:

> I came across a function named `wsample` in a `utils` package of my
> workplace recently.

> The "w" in `wsample` stands for `weighted`, and it randomly selects
> an element from a container according to relative weights of all the
> elements.

I agree that wt_select for weighted select might be better for a sample
size of 1 ;-).

> In most articles and codes I saw online, a function like this is
> often named `weighted_random_choice`, which sounds *correct* to me.

Easier to understand, at least the first time, harder to write. Be glad
the author did not use 'ws' as would have once been common.

> So when I saw this `wsample` function, I considered it a improper
> name. Because `wsample`makes me think of `random.sample`, which
> returns a list of randomly generated elements, not a element.

--
Terry Jan Reedy

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
alex23  
View profile  
 More options Oct 11 2012, 12:42 am
Newsgroups: comp.lang.python
From: alex23 <wuwe...@gmail.com>
Date: Wed, 10 Oct 2012 21:42:14 -0700 (PDT)
Local: Thurs, Oct 11 2012 12:42 am
Subject: Re: Is `wsample` a proper name for a function like this?
On Oct 11, 1:33 pm, Satoru Logic <satorulo...@gmail.com> wrote:

> I came across a function named `wsample` in a `utils` package
> of my workplace recently.

> The "w" in `wsample` stands for `weighted`, and it randomly
> selects an element from a container according to relative
> weights of all the elements.

> So when I saw this `wsample` function, I considered it a improper name.

I tend to agree. I like descriptive names for functions that don't
assume familiarity. If you're unhappy with a function's name and
you're unable to modify the module it belongs to, you can always
rebind it yourself:

    from utils import wsample as weighted_random_choice

If I'm then going to use that function heavily elsewhere, I _might_
rebind it, but always within the scope that is going to use the
abbreviated binding:

    wrc = weighted_random_choice
    <lots of lines of code using wrc>


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Steven D'Aprano  
View profile  
 More options Oct 11 2012, 2:29 am
Newsgroups: comp.lang.python
From: Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info>
Date: 11 Oct 2012 06:29:37 GMT
Local: Thurs, Oct 11 2012 2:29 am
Subject: Re: Is `wsample` a proper name for a function like this?

On Wed, 10 Oct 2012 20:33:16 -0700, Satoru Logic wrote:
> I came across a function named `wsample` in a `utils` package of my
> workplace recently.

> The "w" in `wsample` stands for `weighted`, and it randomly selects an
> element from a container according to relative weights of all the
> elements.

> In most articles and codes I saw online, a function like this is often
> named `weighted_random_choice`, which sounds *correct* to me. So when I
> saw this `wsample` function, I considered it a improper name. Because
> `wsample`makes me think of `random.sample`, which returns a list of
> randomly generated elements, not a element.

You can have a sample size of one.

wsample sounds fine to me. weighted_random_choice is okay too. It depends
whether you value brevity over explicitness. Explicit is good, but some
names are just too long.

If this were my code base, I would probably go for weighted_sample
without mentioning "random" in the name, the reasoning being that samples
are almost always random so explicitly saying so doesn't help much.

--
Steven


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
suzaku  
View profile  
 More options Oct 11 2012, 2:44 am
Newsgroups: comp.lang.python
From: suzaku <satorulo...@gmail.com>
Date: Wed, 10 Oct 2012 23:44:42 -0700 (PDT)
Local: Thurs, Oct 11 2012 2:44 am
Subject: Re: Is `wsample` a proper name for a function like this?

I think if a programmer has used the built-in `random` module before, he would expect a function with "sample" in its name to return a population sequence.

If a function is to return scalar value instead of sequence, I would expect it to be named "choice".


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Steven D'Aprano  
View profile  
 More options Oct 11 2012, 10:22 pm
Newsgroups: comp.lang.python
From: Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info>
Date: 12 Oct 2012 02:22:15 GMT
Local: Thurs, Oct 11 2012 10:22 pm
Subject: Re: Is `wsample` a proper name for a function like this?

On Wed, 10 Oct 2012 23:44:42 -0700, suzaku wrote:
> I think if a programmer has used the built-in `random` module before, he
> would expect a function with "sample" in its name to return a population
> sequence.

I have used the random module for about fifteen years, and I still write
random.sample when I need to use random.choice.

In statistics, probability, and plain English, a sample can be a single
item: that's why we can say "a sample" or "two samples".

> If a function is to return scalar value instead of sequence, I would
> expect it to be named "choice".

And I wouldn't. But what do I care? I'm never going to use the code
you're talking about, so call it "sasquatch" if you like, it's no skin
off my nose.

:)

--
Steven


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
suzaku  
View profile  
 More options Oct 11 2012, 10:48 pm
Newsgroups: comp.lang.python
From: suzaku <satorulo...@gmail.com>
Date: Thu, 11 Oct 2012 19:48:19 -0700 (PDT)
Local: Thurs, Oct 11 2012 10:48 pm
Subject: Re: Is `wsample` a proper name for a function like this?

Thanks for sharing your experience.

As I'm not a native speaker of English,
when I learned that `random.choice` return single item,
  and `random.sample` return a sequence of items,
I thought that the behaviour is determined by their definitions.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »