I have this code that essentially splits a two-dimensional numpy array horizontally and makes a new two-dimensional numpy array out of it.
array1 = np.asarray([[1, 2, 3]]) array2 = np.asarray([[4, 5, 6]]) array3 = np.asarray([[7, 8, 9]]) concatenated = np.concatenate((array1, array2, array3), axis=0) print(concatenated) column_split = np.hsplit(concatenated, array1.size) td_array = [] for array in column_split: td_array.append(array.flatten()) print(np.asarray(td_array))
Output of my code:
[[1 2 3] [4 5 6] [7 8 9]] [[1 4 7] [2 5 8] [3 6 9]]
How can I do this with less lines of code? I assume it could be very resource intensive, as soon as I apply this example to my larger task.
Advertisement
Answer
I suppose using numpy.hsplit in this case is not necessary and what I am trying to do is covered by the numpy.transpose function.
concatenated = np.concatenate((array1, array2, array3), axis=0) td_array = concatenated.T
Thank you j1-lee for pointing this out.