Я увидел функцию numpy.fill_diagonal
, которая присваивает одинаковое значение для диагональных элементов. Но я хочу назначить разные случайные значения для каждого диагонального элемента. Как я могу сделать это в python? Может быть использовать scipy или другие библиотеки?Заполнить матрицу диагональю с разными значениями для каждого числа python
1
A
ответ
2
Вы можете использовать np.diag_indices
, чтобы получить эти индексы, а затем просто индексировать в массив с этими параметрами и присваивать значения.
Вот пример запуска для иллюстрации -
In [86]: arr # Input array
Out[86]:
array([[13, 69, 35, 98, 16],
[93, 42, 72, 51, 65],
[51, 33, 96, 43, 53],
[15, 26, 16, 17, 52],
[31, 54, 29, 95, 80]])
# Get row, col indices
In [87]: row,col = np.diag_indices(arr.shape[0])
# Assign values, let's say from an array to illustrate
In [88]: arr[row,col] = np.array([100,200,300,400,500])
In [89]: arr
Out[89]:
array([[100, 69, 35, 98, 16],
[ 93, 200, 72, 51, 65],
[ 51, 33, 300, 43, 53],
[ 15, 26, 16, 400, 52],
[ 31, 54, 29, 95, 500]])
Вы также можете использовать np.diag_indices_from
и, вероятно, будет более idomatic, как так -
row, col = np.diag_indices_from(arr)
Смежные вопросы
- 1. Попытка заполнить булевую матрицу со случайными значениями
- 2. Заполнить матрицу случайными, но разными номерами
- 3. фильтр jquery с двумя разными значениями числа
- 4. как заполнить матрицу в python
- 5. Я хотел бы заполнить матрицу значениями
- 6. Заполнить матрицу значениями функций в Matlab
- 7. Как заполнить пустую матрицу значениями данных
- 8. Создание списков с разными значениями Python 3.4.3
- 9. Создать большую корреляционную матрицу с разными значениями корреляции
- 10. Matlab сохраняет матрицу как изображение с разными значениями
- 11. Заполнить матрицу с последовательностью значения
- 12. Как поместить числа с разными округлениями в матрицу?
- 13. Как заполнить матрицу индексов массивом значений?
- 14. Создайте матрицу с диагональю и левой диагональю всех 1s в MATLAB
- 15. Python: заполнить матрицу нижнего треугольника из списка
- 16. заполнить матрицу вероятностями weibull
- 17. Несколько Pickerview с разными значениями
- 18. список Python для Сыроватского с несколькими значениями для каждого ключа
- 19. Обновление нескольких строк с разными значениями python и mysql
- 20. Заполнить матрицу с помощью указателей
- 21. Как заполнить матрицу значениями из другой матрицы в R?
- 22. Краска Заполнить многомерную матрицу
- 23. Издевательский метод с разными значениями
- 24. Parsing Python JSON с несколькими одинаковыми строками с разными значениями
- 25. Python Concatenate N словарей с максимальными значениями для каждого ключа
- 26. FactoryGirl create_list с разными значениями
- 27. Найти строки с разными значениями
- 28. Подсчет строк с разными значениями
- 29. ConnectableObservable. Повторить с разными значениями?
- 30. Запустите Django с разными значениями настроек
Благодаря Divakar. Но я хочу, чтобы это было сделано в матрице. Не в массиве. Далее, как я могу дать основные диагональные элементы случайных значений, не указанных в массиве? – Shyamkkhadka
@ Шямкхадка Думайте, что это должно работать так же хорошо и на матрицах NumPy без каких-либо изменений. Вы даже пробовали код? Кроме того, в назначающей части это 'np.array ([100,200,300,400,500]) является просто примером. Мы можем назначить что-нибудь там, например 'arr [row, col] = np.random.randint (0,9, (5))'. – Divakar
Спасибо @ Дивакар. Это сработало. – Shyamkkhadka