Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > Extracting matrix from a text file

Reply
Thread Tools

Extracting matrix from a text file

 
 
bbarbero@inescporto.pt
Guest
Posts: n/a
 
      08-07-2009
Hello to all!!

I am new in python, and I am running it on Mac with Smultron editor. I
need to read a textfile that includes numbers (in a matrix form),
indexes, and strings, like this:

Marsyas-kea distance matrix for MIREX 2007 Audio Similarity Exchange
Q/R 1 2 3 4 5
1 0 4.54592 4.36685 5.29463 3.85728
2 4.54592 0 3.97667 5.02151 4.64284
3 4.36685 3.97667 0 4.98743 4.83683
4 5.29463 5.02151 4.98743 0 6.04393
5 3.85728 4.64284 4.83683 6.04393 0



So I just want to keep the matrix in the "middle" for math computations.

0 4.54592 4.36685 5.29463 3.85728
4.54592 0 3.97667 5.02151 4.64284
4.36685 3.97667 0 4.98743 4.83683
5.29463 5.02151 4.98743 0 6.04393
3.85728 4.64284 4.83683 6.04393 0

I've seen and tried a lot of ways, like split or isinstance.. but
never get the wanted result.... does anyone have an idea, or hint?
Thank you once more for your help!

Best Regards,
Bea

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
 
Reply With Quote
 
 
 
 
alex23
Guest
Posts: n/a
 
      08-07-2009
On Aug 8, 2:19*am, (E-Mail Removed) wrote:
> I am new in python, and I am running it on Mac with Smultron editor. I *
> need to read a textfile that includes numbers (in a matrix form), *
> indexes, and strings, like this:
>
> Marsyas-kea distance matrix for MIREX 2007 Audio Similarity Exchange
> Q/R * * 1 * * * 2 * * * 3 * * * 4 * * * 5
> 1 * * * 0 * * * 4.54592 4.36685 5.29463 3.85728
> 2 * * * 4.54592 0 * * * 3.97667 5.02151 4.64284
> 3 * * * 4.36685 3.97667 0 * * * 4.98743 4.83683
> 4 * * * 5.29463 5.02151 4.98743 0 * * * 6.04393
> 5 * * * 3.85728 4.64284 4.83683 6.04393 0
>
> So I just want to keep the matrix in the "middle" for math computations.
>
> * * * * 0 * * * 4.54592 4.36685 5.29463 3.85728
> * * * * 4.54592 0 * * * 3.97667 5.02151 4.64284
> * * * * 4.36685 3.97667 0 * * * 4.98743 4.83683
> * * * * 5.29463 5.02151 4.98743 0 * * * 6.04393
> * * * * 3.85728 4.64284 4.83683 6.04393 0
>
> I've seen and tried a lot of ways, like split or isinstance.. but *
> never get the wanted result.... does anyone have an idea, or hint? *
> Thank you once more for your help!



isinstance? Are you just randomly trying functions hoping they'll
work?

Untested code follows:

with open(<textfile>,'r') as textfile:
header = textfile.next() # skip the header
col_0_size = 8 # cos it does
for line in textfile:
newline = line[col_0_size:] # strip off the index column
columns = newline.split(' ') # will give you a tuple of
strings
one, two, three, four, five = map(float, columns) # turns the
strings into floats
# do whatever you want to those values here

This is fairly standard text handling with Python, if you haven't
already you should really work through the Python tutorial[1],
especially the section on strings [2], and if you have, perhaps David
Mertz's 'Text Processing in Python'[3] may be of use.

1: http://docs.python.org/tutorial/
2: http://docs.python.org/tutorial/intr...n.html#strings
3: http://gnosis.cx/TPiP/
 
Reply With Quote
 
 
 
 
MRAB
Guest
Posts: n/a
 
      08-07-2009
alex23 wrote:
> On Aug 8, 2:19 am, (E-Mail Removed) wrote:
>> I am new in python, and I am running it on Mac with Smultron editor. I
>> need to read a textfile that includes numbers (in a matrix form),
>> indexes, and strings, like this:
>>
>> Marsyas-kea distance matrix for MIREX 2007 Audio Similarity Exchange
>> Q/R 1 2 3 4 5
>> 1 0 4.54592 4.36685 5.29463 3.85728
>> 2 4.54592 0 3.97667 5.02151 4.64284
>> 3 4.36685 3.97667 0 4.98743 4.83683
>> 4 5.29463 5.02151 4.98743 0 6.04393
>> 5 3.85728 4.64284 4.83683 6.04393 0
>>
>> So I just want to keep the matrix in the "middle" for math computations.
>>
>> 0 4.54592 4.36685 5.29463 3.85728
>> 4.54592 0 3.97667 5.02151 4.64284
>> 4.36685 3.97667 0 4.98743 4.83683
>> 5.29463 5.02151 4.98743 0 6.04393
>> 3.85728 4.64284 4.83683 6.04393 0
>>
>> I've seen and tried a lot of ways, like split or isinstance.. but
>> never get the wanted result.... does anyone have an idea, or hint?
>> Thank you once more for your help!

>
>
> isinstance? Are you just randomly trying functions hoping they'll
> work?
>
> Untested code follows:
>
> with open(<textfile>,'r') as textfile:
> header = textfile.next() # skip the header
> col_0_size = 8 # cos it does
> for line in textfile:
> newline = line[col_0_size:] # strip off the index column
> columns = newline.split(' ') # will give you a tuple of
> strings

[snip]
Or:
columns = line.split(' ')[1 : ]
 
Reply With Quote
 
alex23
Guest
Posts: n/a
 
      08-07-2009
MRAB <(E-Mail Removed)> wrote:
> Or:
> * * * * *columns = line.split(' ')[1 : ]


Even better, well spotted.
 
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
Extracting matrix from a text file telekab1@hotmail.com Python 2 08-11-2009 02:45 PM
Re: Matrix operations on character matrix element? Terry Reedy Python 0 04-02-2009 12:12 AM
Matrix*Vector and Vector*Matrix Holgerson C++ 3 10-26-2007 07:38 AM
Matrix composed by two matrix lvcargnini VHDL 3 07-05-2006 07:21 AM
Re: Matrix DTS and Matrix 2 DTS? PeterTHX DVD Video 0 08-03-2003 05:46 AM



Advertisments