Solved

I couldn't have the transpose of this array in python.

Posted on 2012-04-13
3
569 Views
Last Modified: 2012-04-16
Hi there;

Can you check and help me why I cannot have the transpose of this array?

http://sudrap.org/paste/text/137636/

Kind regards.
0
Comment
Question by:jazzIIIlove
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 29

Accepted Solution

by:
pepr earned 333 total points
ID: 37844789
The matrix transposition means to reorganize a 2-dimensional matrix to the other 2D matrix so that rows become columns.  The 2D matrix is expressed as a list of rows where row is also a list.  Giving the array() only one list, you create only one-dimensional array where you cannot say if it is a column or a row.  Try the following:
c:\tmp\_Python\jazzIIIlove>py26
Python 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> a = numpy.array([[1, 2, 3],
...                 [11, 22, 33]])
>>> a
array([[ 1,  2,  3],
       [11, 22, 33]])
>>> b = a.transpose()
>>> b
array([[ 1, 11],
       [ 2, 22],
       [ 3, 33]])
>>>

Open in new window


You can see here that two rows were transposed to three rows.
0
 
LVL 9

Assisted Solution

by:zaghaghi
zaghaghi earned 167 total points
ID: 37844861
Hi,
instead of
a = numpy.arange(10)
use
a = numpy.arange(10).reshape(1,10)

so you have a 2D array.
0
 
LVL 29

Assisted Solution

by:pepr
pepr earned 333 total points
ID: 37845816
Good idea by zaghaghi!  Think also about the fact that arange() is only one way of creating an array filled by certain values.  You can directly define the array with your values via numpy.array() -- double the brackets to express 2D array with one row.  Here it is illustrated both the zaghaghi's way and manually typed:
>>> import numpy
>>> a = numpy.arange(10).reshape(1,10)
>>> a
array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
>>> b = numpy.array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
>>> b
array([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]])
>>> t = a.transpose()
>>> t
array([[0],
       [1],
       [2],
       [3],
       [4],
       [5],
       [6],
       [7],
       [8],
       [9]])

Open in new window

The a and b are the same initially.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Flask is a microframework for Python based on Werkzeug and Jinja 2. This requires you to have a good understanding of Python 2.7. Lets install Flask! To install Flask you can use a python repository for libraries tool called pip. Download this f…
Sequence is something that used to store data in it in very simple words. Let us just create a list first. To create a list first of all we need to give a name to our list which I have taken as “COURSE” followed by equals sign and finally enclosed …
Learn the basics of strings in Python: declaration, operations, indices, and slicing. Strings are declared with quotations; for example: s = "string": Strings are immutable.: Strings may be concatenated or multiplied using the addition and multiplic…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

688 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question