Как умножить все значения в двух списках и получить соответствующую матрицу - PullRequest
0 голосов
/ 19 мая 2018

Так что я довольно новичок в python и мне было интересно, как я мог бы умножить каждый элемент в одном списке на каждый элемент в другом и построить матрицу с этими новыми элементами.Например:

Если у меня есть два списка:

alpha_p_arra = [0.01,0.02,0.03....,0.1], 
alpha_b_arra = [0.01,0.02,0.03....,0.2]

Аналогично формату на рисунке, могу ли я создать матрицу сформа двух списков (размером 20х10) с соответствующими умноженными значениями в этих индексах?то есть: при (0,0) это будет 0,01 * 0,01 или при (1,0), это будет 0,02 * 0,01.

Я не совсем уверен, как это сделать, и любая помощь будетцениться!

1 Ответ

0 голосов
/ 19 мая 2018

Вы можете и должны использовать numpy для этого вычисления:

import numpy as np

alpha_p_arra = np.arange(1, 11) / 100
alpha_b_arra = np.arange(1, 21) / 100

res = alpha_p_arra * alpha_b_arra[:, None]

Обратите внимание, что мы меняем форму второго массива так, чтобы numpy понимал, что требуется через широковещание .

Выход print(res):

[[0.0001 0.0002 0.0003 0.0004 0.0005 0.0006 0.0007 0.0008 0.0009 0.001 ]
 [0.0002 0.0004 0.0006 0.0008 0.001  0.0012 0.0014 0.0016 0.0018 0.002 ]
 [0.0003 0.0006 0.0009 0.0012 0.0015 0.0018 0.0021 0.0024 0.0027 0.003 ]
 [0.0004 0.0008 0.0012 0.0016 0.002  0.0024 0.0028 0.0032 0.0036 0.004 ]
 [0.0005 0.001  0.0015 0.002  0.0025 0.003  0.0035 0.004  0.0045 0.005 ]
 [0.0006 0.0012 0.0018 0.0024 0.003  0.0036 0.0042 0.0048 0.0054 0.006 ]
 [0.0007 0.0014 0.0021 0.0028 0.0035 0.0042 0.0049 0.0056 0.0063 0.007 ]
 [0.0008 0.0016 0.0024 0.0032 0.004  0.0048 0.0056 0.0064 0.0072 0.008 ]
 [0.0009 0.0018 0.0027 0.0036 0.0045 0.0054 0.0063 0.0072 0.0081 0.009 ]
 [0.001  0.002  0.003  0.004  0.005  0.006  0.007  0.008  0.009  0.01  ]
 [0.0011 0.0022 0.0033 0.0044 0.0055 0.0066 0.0077 0.0088 0.0099 0.011 ]
 [0.0012 0.0024 0.0036 0.0048 0.006  0.0072 0.0084 0.0096 0.0108 0.012 ]
 [0.0013 0.0026 0.0039 0.0052 0.0065 0.0078 0.0091 0.0104 0.0117 0.013 ]
 [0.0014 0.0028 0.0042 0.0056 0.007  0.0084 0.0098 0.0112 0.0126 0.014 ]
 [0.0015 0.003  0.0045 0.006  0.0075 0.009  0.0105 0.012  0.0135 0.015 ]
 [0.0016 0.0032 0.0048 0.0064 0.008  0.0096 0.0112 0.0128 0.0144 0.016 ]
 [0.0017 0.0034 0.0051 0.0068 0.0085 0.0102 0.0119 0.0136 0.0153 0.017 ]
 [0.0018 0.0036 0.0054 0.0072 0.009  0.0108 0.0126 0.0144 0.0162 0.018 ]
 [0.0019 0.0038 0.0057 0.0076 0.0095 0.0114 0.0133 0.0152 0.0171 0.019 ]
 [0.002  0.004  0.006  0.008  0.01   0.012  0.014  0.016  0.018  0.02  ]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...