Как умножить матрицу NxN H на массив Nx1 t = [t1, t2, ..., tN], чтобы H * t = [H * t1, H * t2, ..., H * tN], используя numy? - PullRequest
0 голосов
/ 06 декабря 2018

Я знаю, как это сделать для циклов for, но есть ли способ использовать числовые массивы и их операции для достижения этого типа умножения?

1 Ответ

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

Вы можете использовать np.multiply.outer:

>>> import numpy as np
>>> 
>>> H = np.arange(9).reshape(3, 3)
>>> t = np.c_[10:40:10]
>>> 
>>> H                                                                                                               
array([[0, 1, 2],                                                                                                   
       [3, 4, 5],                                                                                                   
       [6, 7, 8]])                                                                                                  
>>> t                                                                                                               
array([[10],                                                                                                        
       [20],                                                                                                        
       [30]])                                                                                                       
>>>                                                                                                                 
>>> np.multiply.outer(t.ravel(), H)
array([[[  0,  10,  20],                                                                                            
        [ 30,  40,  50],                                                                                            
        [ 60,  70,  80]],                                                                                           

       [[  0,  20,  40],                                                                                            
        [ 60,  80, 100],                                                                                            
        [120, 140, 160]],                                                                                           

       [[  0,  30,  60],                                                                                            
        [ 90, 120, 150],                                                                                            
        [180, 210, 240]]])                                                                                          
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...