Почему эта операция нарезки кусочков, для которой у меня нет хорошего названия, не работает? - PullRequest
0 голосов
/ 11 июля 2019

Я не понимаю, почему моя операция нарезки не работает. Мое намерение состоит в том, чтобы применить срез [:: 2] к каждому вложенному массиву a, чтобы размер x был (3, 5), но все пошло не так, как ожидалось.

a = np.arange(0,30)
a.shape = (3, -1)
x = a[:][::2]

a : array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],
          [10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
          [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]])

Фактический вывод

x: array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],
         [20, 21, 22, 23, 24, 25, 26, 27, 28, 29]])

Желаемый результат:

x : array([0, 2, 4, 6, 8],
          [10, 12, 14, 16, 18],
          [20, 22, 24, 26, 28])

1 Ответ

2 голосов
/ 11 июля 2019

Опечатка:

x = a[:,::2]

В противном случае вы выбираете полный массив в первом измерении, а затем снова делаете то же самое, одно первое измерение, а не второе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...