Есть ли причина, по которой вы не можете сделать это явно?Как в:
>>> a = numpy.arange(17520 * 3).reshape(48, 365, 3)
>>> a.reshape((17520,3))
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
...,
[52551, 52552, 52553],
[52554, 52555, 52556],
[52557, 52558, 52559]])
Вы также можете сделать это с помощью -1
, просто его нужно соединить с другим аргументом соответствующего размера.
>>> a.reshape((17520,-1))
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
...,
[52551, 52552, 52553],
[52554, 52555, 52556],
[52557, 52558, 52559]])
или
>>> a.reshape((-1,3))
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
...,
[52551, 52552, 52553],
[52554, 52555, 52556],
[52557, 52558, 52559]])
Чуть позже мне пришло в голову, что вы также можете создать массив записей - это может быть целесообразно в некоторых ситуациях:
a = numpy.recarray((17520,), dtype=[('x', int), ('y', int), ('z', int)])
Это можно изменить в исходном видеВы пытались, то есть reshape(-1)
.Тем не менее, как говорится в комментарии larsmans, проще всего обрабатывать ваши данные как трехмерный массив.