Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to change order of array dimensions

How do I reorder the dimensions of an n dimensional array. For example, if I have a three dimensional array of sales data, where the first dimension represents the Date, the second dimension is the Store, and the third dimension is Department. How do I transform the array so that the first dimension is Store, the second is Department, and the third is Date. This is just an example. I am hoping for a general solution.

like image 931
ruser Avatar asked May 21 '12 03:05

ruser


People also ask

How do you reorder dimensions in Matlab?

B = permute( A , dimorder ) rearranges the dimensions of an array in the order specified by the vector dimorder . For example, permute(A,[2 1]) switches the row and column dimensions of a matrix A .

How do you change the size of an array in Python?

The shape of the array can also be changed using the resize() method. If the specified dimension is larger than the actual array, The extra spaces in the new array will be filled with repeated copies of the original array.

What does Permute mean in Matlab?

'Permute' command in Permute Matlab is used to rearrange the elements within a multidimensional array. To access this command we just need to pass the order of the multi-dimensional matrix. It has various features like dimension, size, circshift, and reshape.


1 Answers

The function for doing that is aperm, from the base package. It is a generalization of the transpose t() function to multidimensional arrays. For your example, you would call it as follows:

new.data <- aperm(old.data, c(2,3,1)) 
like image 72
flodel Avatar answered Sep 20 '22 18:09

flodel