Как заменить первое измерение массива 3D numpy значениями из одномерного массива? - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть 3D и массив 1D numpy - размера A (3750, 17, 1000) и размера B (3750). Я хочу заменить значения в 1-м измерении A на значения из массива B, чтобы результирующий массив C все еще имел размер (3750, 17, 1000), но значения в первом измерении отличались.

>>> A.shape
(3750, 17, 1000)

>>> B.shape (3750,)

>>> C.shape(3750, 17, 1000)

Я пробовал:

>>> C = np.concatenate((A, np.broadcast_to(np.array(B)[:, None, None],A.shape)), axis = 0)

Но вывод:

>>> C.shape (7500, 17, 1000)

Так что в основном, если

A =


1 [x, y ... 1000]

  [x, y ... 1000]

  ...17

2 [x, y ... 1000]

  [x, y ... 1000]

  ...17

3 [x, y ... 1000]

  [x, y ... 1000]

  ...17
.
.
.
3750

и B =

22
43
11
.
.
n=3750

Тогда C должно выглядеть как

22 [x, y ... 1000]
   [x, y ... 1000]
    ...17

43 [x, y ... 1000]
   [x, y ... 1000]
    ...17

11 [x, y ... 1000]
   [x, y ... 1000]
    ...17
.
.
.
n=3750

1 Ответ

0 голосов
/ 13 февраля 2020

Вы имеете в виду:

A[:,0,0] = B

Это правильно?

...