[Tutor] TypeError: only length-1 arrays can be converted to Python scalars

stm atoc stm.at.oc at googlemail.com
Thu Jan 26 12:03:49 CET 2012


Hi,

I have a question regarding the TypeError.

I have this script as follows in Python. I have run a program in Fortran:

# coding: utf-8
from pylab import *
import numpy
import matplotlib.pyplot as pyplot
import matplotlib.mlab as mlab

t=3600
N = 100
dz = 1.0

with open("act_out.list", "r") as f:
   z = numpy.array([float(v) for v in f.readline().split()[1:]])
zm = z*1.0e6

a = numpy.loadtxt("act_out.list", skiprows=3)
t=a[:,0]
nu = a[0:,1:N+1]
Conc = a[:, N+1:]
hsml=zeros((103))
cprof=zeros((103))

hsml[0]=-1300.
hsml[-2]=-300.
hsml[-1]=0.
hsml[1:-2]=z*1000000-300.

cprof[0]=50.
cprof[-2]=500.
cprof[-1]=500.

idx=int(where(t==1800)[0])
cprof[1:-2]=Conc[idx]

lw = 2.0
dpi = 80
figure(figsize=(8,8),dpi=dpi)
pyplot.plot(cprof,hsml,'r-')

pyplot.xlabel('$Conc, mmol C m^3$')
pyplot.ylabel('$Hsml, micrometer$')
pyplot.grid(True)

legend()
savefig('Conc.png')
show()

after runing Python, I hav ethis massage:

 TypeError: only length-1 arrays can be converted to Python scalars

Any suggestion?  in fact, what I missed and what I should add to have
a right result!

Thanks in advance,
Sue


More information about the Tutor mailing list