Numpy diag не возвращает матрицу - PullRequest
0 голосов
/ 06 августа 2020

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

A = np.random.rand(10, 1)
M = np.diag(A)

. Я думал из этого учебника и других, что я должен получить элементы A по диагонали, но вместо этого мой вывод - это всего лишь первый элемент A. Что такое ошибка здесь?

1 Ответ

2 голосов
/ 06 августа 2020

Я хотел взять 10 элементов A (вектор) и записать матрицу 10x10 с этими элементами по диагонали и нулями в другом месте

a = np.random.rand(10, 1)

>>> a.ndim
2

Возвращает 2- d, а .diag пытается извлечь из него диагональ, но во втором измерении ничего нет, поэтому возвращается только элемент [0,0]. Чтобы создать 2-мерный массив с a по диагонали, сделайте a 1-мерный массив.

a = np.random.rand(10)
m = np.diag(a)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...