Как рассчитать xi ^ j в матрице в Numpy - PullRequest
2 голосов
/ 30 марта 2019

Я пытаюсь вычислить матрицу из введенного массива.

Я хотел бы иметь возможность вводить

a = [0,1,2]

в python и хотел бы изменить его с помощью Numpyтак что в результате массив будет иметь вид x_i ^ j в строке i и столбце j,

, например, для ввода:

    a = [0,1,2]

и вывод должен быть

[[1,0,0],
 [1,1,1],
 [1,2,4]]

и я использовал следующий код

 xij = np.matrix([np.power(xi,j) for j in x for xi in x]).reshape(3,3)

[[ 1,  2,  3],
 [ 1,  4,  9],
 [ 1,  8, 27]]

Я предполагаю, что я использую неправильную формулу для Numpy, не могли бы вы помочь мне решить эту проблему.Заранее спасибо

Ответы [ 2 ]

1 голос
/ 30 марта 2019

Вам нужно использовать range(len(a)), чтобы получить показатели и правильный порядок для циклов

a = [0,1,2]

xij = np.matrix([np.power(xi,j) for xi in a for j in range(len(a))]).reshape(3,3)

# matrix([[1, 0, 0],
#         [1, 1, 1],
#         [1, 2, 4]])
0 голосов
/ 31 марта 2019

С массивом вещания:

In [823]: np.array([0,1,2])**np.arange(3)[:,None]                               
Out[823]: 
array([[1, 1, 1],
       [0, 1, 2],
       [0, 1, 4]])

In [825]: np.array([1,2,3])**np.arange(1,4)[:,None]                             
Out[825]: 
array([[ 1,  2,  3],
       [ 1,  4,  9],
       [ 1,  8, 27]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...