Свести np.ndarray в заказ - PullRequest
       2

Свести np.ndarray в заказ

1 голос
/ 01 июня 2019

У меня есть np.ndarray с формой (24, 3). Я хочу сгладить этот массив, но в необычной форме. Я хотел бы, чтобы [0: 8, 0], затем [0: 8, 1], затем [0: 8, 2], затем [8:16, 0] и т. Д.

Конечно, я мог бы сделать это методом грубой силы, но, возможно, есть более элегантное и эффективное решение этой проблемы.

new_array = np.array([])
np.append(new_array, old_array[0:8, 0])
np.append(new_array, old_array[0:8, 1])
np.append(new_array, old_array[0:8, 2])

np.append(new_array, old_array[8:16, 0])
np.append(new_array, old_array[8:16, 1])
np.append(new_array, old_array[8:16, 2])

np.append(new_array, old_array[16:24, 0])
np.append(new_array, old_array[16:24, 1])
np.append(new_array, old_array[16:24, 2])

1 Ответ

1 голос
/ 01 июня 2019

Reshape, permute and reshape -

n = 8 # cut length along first axis
new_array = old_array.reshape(-1,n,old_array.shape[1]).swapaxes(1,2).ravel()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...