Как инициализировать тензор определенной формы в python3 - PullRequest
0 голосов
/ 14 марта 2020

Тензор, который мне нужно инициализировать, имеет форму (3,3,2). Итак, есть 3 матрицы формы (3,2), которые мне нужно инициализировать следующим образом:

1-я матрица: [[x1, x2], [0,0], [0,0]]

2-я матрица: [[0,0], [x1, x2], [0,0]]

3-я матрица: [[0,0], [0,0], [ x1, x2]]

Мне дано x (numpy массив) в качестве ввода. У меня возникают проблемы с вычислением l oop для инициализации тензора с использованием numpy.

   y= np.zeros((3, 3, 2))
   for i in range(3):
      for j in range(3):
         for k in range(2):
             y[i,j,k] = ?

Я думаю, что учитывая x, я поступаю об этом неправильно. Любая помощь приветствуется!

1 Ответ

0 голосов
/ 14 марта 2020
In [8]: arr = np.zeros((3,3,2))                                                                                      
In [9]: arr[np.arange(3), np.arange(3),:] = [1.2, 2.3]                                                               
In [10]: arr                                                                                                         
Out[10]: 
array([[[1.2, 2.3],
        [0. , 0. ],
        [0. , 0. ]],

       [[0. , 0. ],
        [1.2, 2.3],
        [0. , 0. ]],

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