Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I get the x and y dimensions of a ndarray - Numpy / Python

I'm wondering if I can get the x and y dimensions of a ndarray separately. I know that I can use ndarray.shape to get a tuple representing the dimensions, but how can I separate this in x and y information?

Thank you in advance.

like image 698
pceccon Avatar asked Mar 18 '14 20:03

pceccon


3 Answers

height, width = a.shape

Note, however, that ndarray has matrix coordinates (i,j), which are opposite to image coordinates (x,y). That is:

i, j = y, x  # and not x, y

Also, Python tuples support indexing, so you can access separate dimensions like this:

dims = a.shape
height = dims[0]
width = dims[1]
like image 61
ffriend Avatar answered Oct 07 '22 02:10

ffriend


You can use tuple unpacking.

y, x = a.shape
like image 35
bitsplit Avatar answered Oct 07 '22 01:10

bitsplit


ndarray.shape() will throw a TypeError: 'tuple' object is not callable. because it's not a function, it's a value.

What you want to do is just tuple unpack .shape without the (). Example:

>> import numpy
>> ndarray = numpy.ndarray((20, 21))
>> ndarray.shape
(20, 21)
>> x, y = ndarray.shape
>> x
20
>> y
21

http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.shape.html

like image 33
Ford Avatar answered Oct 07 '22 01:10

Ford