Numy переменные индексы срезов - PullRequest
0 голосов
/ 29 декабря 2018
dataset[batch_idx:, :, :, :]

Это собирает пакеты 3-мерных данных.

dataset[batch_idx:, :]

Это собирает пакеты 1-мерных данных.

Как мы собираем пакеты n-мерных данных?

Ищите решение, которое работает для numpy и h5py

1 Ответ

0 голосов
/ 30 декабря 2018

Я не уверен насчет h5py, но для numpy я всегда использую slice.

slices = tuple([batch_idx] + [slice(None)]*(dim))
dataset[slices]

Каждая slice(None) эквивалентна одной из точек с запятой, поэтому вам просто нужно составить списокиз них, что соответствует количеству измерений у вас есть.Таким образом, если dim равен 1, приведенный выше код будет собирать фрагменты одномерных данных, если dim равен 3, он будет собирать фрагменты трехмерных данных и т. Д. Если вы хотите выполнять более сложные нарезки, вы можете, например, использовать slice(3,10,2) заменить 3:10:2 в n-мерном срезе.Надеюсь, это поможет!

...