[Numpy-discussion] genfromtxt
Nils Wagner
nwagner at iam.uni-stuttgart.de
Tue Oct 11 10:34:50 EDT 2011
Hi all,
How do I use genfromtxt to read a file with the following
lines
1 1 2.2592365264892578D+01
2 2 2.2592365264892578D+01
1 3 2.6666669845581055D+00
3 3 2.2592365264892578D+01
2 4 2.6666669845581055D+00
4 4 2.2592365264892578D+01
3 5 2.6666669845581055D+00
5 5 2.2592365264892578D+01
4 6 2.6666669845581055D+00
6 6 2.2592365264892578D+01
1 7 2.9814243316650391D+00
7 7 1.7259031295776367D+01
2 8 2.9814243316650391D+00
8 8 1.7259031295776367D+01
...
names =("i","j","v")
A =
np.genfromtxt('bmll.mtl',dtype=[('i','int'),('j','int'),('v','d')],names=names)
V = A[:]['v']
>>> V
array([ NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN,
NaN, NaN, NaN,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN,
NaN, NaN, NaN,
NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN,
NaN, NaN, NaN,
NaN, NaN, NaN])
yields NaN, while
convertfunc = lambda x: x.replace('D','E')
names =("i","j","v")
A =
np.genfromtxt('bmll.mtl',dtype=[('i','int'),('j','int'),('v','|S24')],names=names,converters={"v":convertfunc})
V = A[:]['v'].astype(float)
>>> V
array([ 22.59236526, 22.59236526, 2.66666698,
22.59236526,
2.66666698, 22.59236526, 2.66666698,
22.59236526,
2.66666698, 22.59236526, 2.98142433,
17.2590313 ,
2.98142433, 17.2590313 , 2.98142433,
2.98142433,
2.66666698, 22.59236526, 2.98142433,
2.98142433,
2.66666698, 22.59236526, 2.98142433,
2.98142433,
2.66666698, 22.59236526, 2.98142433,
2.98142433,
2.66666698, 22.59236526, 2.98142433,
2.66666698,
17.2590313 , 2.98142433, 2.66666698,
17.2590313 ])
works fine.
Nils
More information about the NumPy-Discussion
mailing list