Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does transpose(3, 0, 1, 2) mean?

What does this mean?

data.transpose(3, 0, 1, 2)

Also, if data.shape == (10, 10, 10), why do I get ValueError: axes don't match array?

like image 514
John Avatar asked Dec 13 '25 21:12

John


1 Answers

Let me discuss in terms of Python3.

I use the transpose function in python as data.transpose(3, 0, 1, 2)

This is wrong as this operation requires 4 dimensions, while you only provide 3 (as in (10,10,10)). Reproducible as:

>>> a = np.arange(60).reshape((1,4,5,3))
>>> b = a.transpose((2,0,1))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: axes don't match array

You can either add another dimension simply by reshaping (10,10,10) to (1,10,10,10) if the image batch is 1. This can be done as:

w,h,c = original_image.shape #10,10,10
modified_img = np.reshape((1,w,h,c)) #(1,10,10,10)

what does it mean of 3, 0, 1, 2.

For 2D numpy arrays, transpose for an array (matrix) operates just as the names say. But for higher dimensional arrays like yours, it basically works as moveaxis.

>>> a = np.arange(60).reshape((4,5,3))
>>> b = a.transpose((2,0,1))
>>> b.shape
(3, 4, 5)
>>> c = np.moveaxis(a,-1,0)
>>> c.shape
(3, 4, 5)
>>> b
array([[[ 0,  3,  6,  9, 12],
        [15, 18, 21, 24, 27],
        [30, 33, 36, 39, 42],
        [45, 48, 51, 54, 57]],

       [[ 1,  4,  7, 10, 13],
        [16, 19, 22, 25, 28],
        [31, 34, 37, 40, 43],
        [46, 49, 52, 55, 58]],

       [[ 2,  5,  8, 11, 14],
        [17, 20, 23, 26, 29],
        [32, 35, 38, 41, 44],
        [47, 50, 53, 56, 59]]])
>>> c
array([[[ 0,  3,  6,  9, 12],
        [15, 18, 21, 24, 27],
        [30, 33, 36, 39, 42],
        [45, 48, 51, 54, 57]],

       [[ 1,  4,  7, 10, 13],
        [16, 19, 22, 25, 28],
        [31, 34, 37, 40, 43],
        [46, 49, 52, 55, 58]],

       [[ 2,  5,  8, 11, 14],
        [17, 20, 23, 26, 29],
        [32, 35, 38, 41, 44],
        [47, 50, 53, 56, 59]]])

As evident, both methods work the same.

like image 134
Pe Dro Avatar answered Dec 16 '25 23:12

Pe Dro



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!