Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > data type and logarithm

Reply
Thread Tools

data type and logarithm

 
 
simona bellavista
Guest
Posts: n/a
 
      06-16-2011
Hi, I am quite new to python and I am trying to do some simple plots.
I am using python Python 2.6.4 and numpy/1.5.1
I have an ASCII data file that I am reading with the following lines
of code:

import pylab
import numpy as np

filename='something.dat'
file = open(filename)

rho = np.array([], dtype = 'float64')
entropy = np.array([], dtype = 'float64')
for line in file:
columns = line.split()
rho = np.append(rho,columns[0])
entropy = np.append(entropy,columns[1])

and rho and entropy are apparently read correctly, but when I look to
the data type

print rho.dtype
print entropy.dtype

I get |S22 , what's that?
Then I want to plot a logarithmic plot and I do

pylab.plot(np.log(rho), entropy)

and I get

NotImplementedError: Not implemented for this type

Does anybody has a clue? I do not know how to proceed

Many thanks
 
Reply With Quote
 
 
 
 
Nobody
Guest
Posts: n/a
 
      06-16-2011
On Thu, 16 Jun 2011 01:37:08 -0700, simona bellavista wrote:

> print rho.dtype
> print entropy.dtype
>
> I get |S22 , what's that?


A string. You probably want to convert "columns" to floats before
appending its elements to the array.

 
Reply With Quote
 
 
 
 
afylot@gmail.com
Guest
Posts: n/a
 
      06-16-2011
I tried to cast it to float by

rho = float(np.append(rho,columns[0]))

but I get

TypeError: don't know how to convert scalar number to float

By the way, if I avoid to perform the logarithm and do a plot like

pylab.plot(rho, entropy)

it works!

Any idea?

On Jun 16, 11:16*am, Nobody <nob...@nowhere.com> wrote:
> A string. You probably want to convert "columns" to floats before
> appending its elements to the array.


 
Reply With Quote
 
Peter Otten
Guest
Posts: n/a
 
      06-16-2011
simona bellavista wrote:

> Hi, I am quite new to python and I am trying to do some simple plots.
> I am using python Python 2.6.4 and numpy/1.5.1
> I have an ASCII data file that I am reading with the following lines
> of code:
>
> import pylab
> import numpy as np
>
> filename='something.dat'
> file = open(filename)
>
> rho = np.array([], dtype = 'float64')
> entropy = np.array([], dtype = 'float64')
> for line in file:
> columns = line.split()
> rho = np.append(rho,columns[0])


You have to convert the string to a float, e. g.

rho = np.append(rho, np.float64(columns[0]))

> entropy = np.append(entropy,columns[1])
>
> and rho and entropy are apparently read correctly, but when I look to
> the data type
>
> print rho.dtype
> print entropy.dtype
>
> I get |S22 , what's that?
> Then I want to plot a logarithmic plot and I do
>
> pylab.plot(np.log(rho), entropy)
>
> and I get
>
> NotImplementedError: Not implemented for this type
>
> Does anybody has a clue? I do not know how to proceed


It should be easier to use numpy.loadtxt():

with open(filename) as f:
a = np.loadtxt(f)
rho = a[..., 0]
entropy = a[..., 1]

 
Reply With Quote
 
Terry Reedy
Guest
Posts: n/a
 
      06-16-2011
On 6/16/2011 4:37 AM, simona bellavista wrote:
> Hi, I am quite new to python and I am trying to do some simple plots.
> I am using python Python 2.6.4 and numpy/1.5.1
> I have an ASCII data file that I am reading with the following lines
> of code:
>
> import pylab
> import numpy as np
>
> filename='something.dat'
> file = open(filename)


combine into one statement
file = open("sjlsjls.dat")

> rho = np.array([], dtype = 'float64')
> entropy = np.array([], dtype = 'float64')
> for line in file:
> columns = line.split()


r,e = line.split()

> rho = np.append(rho,columns[0])
> entropy = np.append(entropy,columns[1])


rho = mp.append(rho, float(r)) # same with entropy)

does numpy really not let you write Python stype

rho.append(float(r))
?

There are also numpy,scipy lists for numpy,scipy questions.

--
Terry Jan Reedy

 
Reply With Quote
 
Robert Kern
Guest
Posts: n/a
 
      06-16-2011
On 6/16/11 12:20 PM, Terry Reedy wrote:

> rho = mp.append(rho, float(r)) # same with entropy)
>
> does numpy really not let you write Python stype
>
> rho.append(float(r))
> ?


No. numpy arrays are not extensible in-place in general because we use view
semantics for slices and similar operations like transpositions. We can't have
the underlying memory change out from underneath us. This is one of the worst
ways to accumulate values into a numpy array.

--
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
 
 
 
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
Natural logarithm method not recognised Octavio Java 3 06-09-2008 10:26 AM
histogram logarithm drs@canby.com Digital Photography 19 01-04-2005 09:58 AM
Re: Type casting- a larger type to a smaller type pete C Programming 4 04-02-2004 05:19 PM
Re: Type casting- a larger type to a smaller type heyo C Programming 3 04-01-2004 06:35 PM
The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value. luna ASP .Net 1 02-13-2004 01:15 PM



Advertisments