Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Tuples from List

Reply
Thread Tools

Tuples from List

 
 
rshepard@nospam.appl-ecosys.com
Guest
Posts: n/a
 
      02-28-2007
While it should be easy for me to get what I need from a list, it's
proving to be more difficult than I expected.

I start with this list:

[ 6.24249034e-01+0.j 5.11335982e-01+0.j 3.67333773e-01+0.j
3.01189122e-01+0.j 2.43449050e-01+0.j 1.82948476e-01+0.j
1.43655139e-01+0.j 9.91225725e-02+0.j]

and I want a list of floats of only the first 6 digits for each value. If I
write:
for i in listname:
print i

I get this:

(0.624249034424+0j)
(0.511335982206+0j)
(0.367333773283+0j)
(0.301189121704+0j)
(0.243449050439+0j)
(0.182948475822+0j)
(0.14365513894+0j)
(0.0991225725344+0j)

I know it's embarrassingly simple, but the correct syntax eludes my
inexperienced mind. What I want is a list [0.62424, 0.51133, ...] so that I
can normalize those values.

What is the correct syntax, please?

Rich
 
Reply With Quote
 
 
 
 
Paul Rubin
Guest
Posts: n/a
 
      02-28-2007
http://www.velocityreviews.com/forums/(E-Mail Removed)-ecosys.com writes:
> [ 6.24249034e-01+0.j 5.11335982e-01+0.j 3.67333773e-01+0.j
> 3.01189122e-01+0.j 2.43449050e-01+0.j 1.82948476e-01+0.j
> 1.43655139e-01+0.j 9.91225725e-02+0.j]
>
> and I want a list of floats of only the first 6 digits for each value. If I
> write:
> for i in listname:
> print i


If you mean the first six digits of the real part and they're all < 1,

for z in listname:
print '%.5f' % z.real
 
Reply With Quote
 
 
 
 
Robert Kern
Guest
Posts: n/a
 
      02-28-2007
(E-Mail Removed)-ecosys.com wrote:
> While it should be easy for me to get what I need from a list, it's
> proving to be more difficult than I expected.
>
> I start with this list:
>
> [ 6.24249034e-01+0.j 5.11335982e-01+0.j 3.67333773e-01+0.j
> 3.01189122e-01+0.j 2.43449050e-01+0.j 1.82948476e-01+0.j
> 1.43655139e-01+0.j 9.91225725e-02+0.j]


No, that's a numpy array.

> and I want a list of floats of only the first 6 digits for each value. If I
> write:
> for i in listname:
> print i
>
> I get this:
>
> (0.624249034424+0j)
> (0.511335982206+0j)
> (0.367333773283+0j)
> (0.301189121704+0j)
> (0.243449050439+0j)
> (0.182948475822+0j)
> (0.14365513894+0j)
> (0.0991225725344+0j)


Those aren't tuples, but complex numbers.

> I know it's embarrassingly simple, but the correct syntax eludes my
> inexperienced mind. What I want is a list [0.62424, 0.51133, ...] so that I
> can normalize those values.
>
> What is the correct syntax, please?


# Extract the real components (since the imaginary components are all 0):
eigvals = eigvals.real

# Normalize the eigenvalues:
eigvals /= eigvals.sum()

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco

 
Reply With Quote
 
Ben Finney
Guest
Posts: n/a
 
      02-28-2007
(E-Mail Removed)-ecosys.com writes:

> While it should be easy for me to get what I need from a list, it's
> proving to be more difficult than I expected.
>
> I start with this list:
>
> [ 6.24249034e-01+0.j 5.11335982e-01+0.j 3.67333773e-01+0.j
> 3.01189122e-01+0.j 2.43449050e-01+0.j 1.82948476e-01+0.j
> 1.43655139e-01+0.j 9.91225725e-02+0.j]


That's not correct syntax for a list. I assume, then, that it's not
actual code from your program.

> and I want a list of floats of only the first 6 digits for each value.


You don't get to choose how many digits are represented in a float
value; that's a property of the underlying floating-point
implementation, and indeed will change depending on the actual value
(since a float is a *binary* representation of a number, not decimal).

Perhaps you are looking for the Decimal type:

<URL:http://docs.python.org/lib/module-decimal.html>

> for i in listname:
> print i
>
> I get this:
> [each item printed separately]
>
> I know it's embarrassingly simple, but the correct syntax eludes
> my inexperienced mind. What I want is a list [0.62424, 0.51133, ...]
> so that I can normalize those values.


You can create a new list from any sequence value by using the
constructor for the list type:

>>> old_sequence = [12, 34, 56]
>>> new_list = list(old_sequence)
>>> new_list[0]

12

As for making a list containing different values (e.g. Decimal
values), you might want a list comprehension:

>>> from decimal import Decimal
>>> old_sequence = [12, 34, 56]
>>> new_list = [Decimal(value) for value in old_sequence]
>>> new_list[0]

Decimal("12")

--
\ "I may disagree with what you say, but I will defend to the |
`\ death your right to mis-attribute this quote to Voltaire." -- |
_o__) Avram Grumer, rec.arts.sf.written, May 2000 |
Ben Finney

 
Reply With Quote
 
rshepard@nospam.appl-ecosys.com
Guest
Posts: n/a
 
      02-28-2007
On 2007-02-28, Robert Kern <(E-Mail Removed)> wrote:

> No, that's a numpy array.


Robert,

That's where I went off. I forgot that I'm still dealing with a 1D NumPy
array and not a list. No wonder I had such fits!

> Those aren't tuples, but complex numbers.


I have not seen the 'j' suffix before. That was throwing me.

> # Extract the real components (since the imaginary components are all 0):
> eigvals = eigvals.real


That's so much easier than what I ended up doing, which was creating
another variable and assigning to that an explicit cast to real of the
array.

> # Normalize the eigenvalues:
> eigvals /= eigvals.sum()


Now that's really nice!

Thank you very much for today's lessons. I really appreciate them

Rich
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Dictionaries with tuples or tuples of tuples Jon Reyes Python 18 02-19-2013 03:56 AM
Passing tuples of tuples to sqlite xera121 Python 8 09-30-2009 05:45 AM
tuples within tuples korovev76@gmail.com Python 12 10-27-2007 08:16 PM
Different tuples to one container? (One type of a pointer to point to different kinds of tuples?) fff_afafaf@yahoo.com C++ 5 10-05-2006 11:17 PM
Converting a flat list to a list of tuples metiu uitem Python 31 11-24-2005 09:26 AM



Advertisments