Как создать рандомную матрицу в питоне
Перейти к содержимому

Как создать рандомную матрицу в питоне

  • автор:

NumPy, часть 3: random

Python 3 логотип

Здравствуйте! Я продолжаю работу над пособием по python-библиотеке NumPy.

В прошлой части мы научились работать с массивами.

Сегодня мы узнаем, как создавать массивы из случайных элементов и как работать со случайными элементами в NumPy.

Путь первый

Создавать списки, используя встроенный модуль random, а затем преобразовывать их в numpy.array:

Но есть способ лучше.

numpy.random

Для создания массивов со случайными элементами служит модуль numpy.random.

Создание массивов

Самый простой способ задать массив со случайными элементами — использовать функцию sample (или random, или random_sample, или ranf — это всё одна и та же функция).

Без аргументов возвращает просто число в промежутке [0, 1), с одним целым числом — одномерный массив, с кортежем — массив с размерами, указанными в кортеже (все числа — из промежутка [0, 1)).

С помощью функции randint или random_integers можно создать массив из целых чисел. Аргументы: low, high, size: от какого, до какого числа (randint не включает в себя это число, а random_integers включает), и size — размеры массива.

Также можно генерировать числа согласно различным распределениям (Гаусса, Парето и другие). Чаще всего нужно равномерное распределение, которое можно получить с помощь функции uniform.

Выбор и перемешивание

Перемешать NumPy массив можно с помощью функции shuffle:

Также можно перемешать массив с помощью функции permutation (она, в отличие от shuffle, возвращает перемешанный массив). Также она, вызванная с одним аргументом (целым числом), возвращает перемешанную последовательность от 0 до N.

Сделать случайную выборку из массива можно с помощью функции choice. Про неё стоит рассказать подробнее.

numpy.random.choice(a, size=None, replace=True, p=None)

  • a : одномерный массив или число. Если массив, будет производиться выборка из него. Если число, то выборка будет производиться из np.arange(a).
  • size : размерности массива. Если None, возвращается одно значение.
  • replace : если True, то одно значение может выбираться более одного раза.
  • p : вероятности. Это означает, что элементы можно выбирать с неравными вероятностями. Если не заданы, используется равномерное распределение.

Инициализация генератора случайных чисел

seed(число) — инициализация генератора.

get_state и set_state — возвращают и устанавливают состояние генератора.

Для вставки кода на Python в комментарий заключайте его в теги

  • Модуль csv - чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ
  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов
  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

Как создать матрицу NumPy со случайными числами

Вы можете использовать следующие методы для создания матрицы NumPy со случайными числами:

Способ 1: создать матрицу случайных целых чисел NumPy

np.random.randint (low, high, (rows, columns)) 

Метод 2: создать матрицу NumPy случайных чисел с плавающей запятой

np.random.rand (rows, columns) 

В следующих примерах показано, как использовать каждый метод на практике.

Пример 1: создание матрицы случайных целых чисел NumPy

В следующем коде показано, как создать матрицу NumPy случайных значений в диапазоне от 0 до 20 с формой из 7 строк и 2 столбцов :

import numpy as np #create NumPy matrix of random integers np.random.randint (0, 20, (7, 2)) array([[ 3, 7], [17, 10], [ 0, 10], [13, 16], [ 6, 14], [ 8, 7], [ 9, 15]]) 

Обратите внимание, что каждое значение в матрице находится в диапазоне от 0 до 20, а окончательная форма матрицы — 7 строк и 2 столбца.

Пример 2: создание матрицы случайных чисел с плавающей запятой NumPy

В следующем коде показано, как создать матрицу NumPy со случайными значениями с плавающей точкой от 0 до 1 и формой из 7 столбцов и 2 строк:

import numpy as np #create NumPy matrix of random floats np.random.rand (7, 2) array([[0.64987774, 0.60099292], [0.13626106, 0.1859029 ], [0.77007972, 0.65179164], [0.33524707, 0.46201819], [0.1683 , 0.72960909], [0.76117417, 0.37212974], [0.18879731, 0.65723325]]) 

Результатом является матрица NumPy, которая содержит случайные значения с плавающей запятой от 0 до 1 в форме 7 строк и 2 столбцов.

Обратите внимание, что вы также можете использовать функцию NumPy round() для округления каждого числа с плавающей запятой до определенного числа знаков после запятой.

Например, следующий код показывает, как создать матрицу NumPy случайных чисел с плавающей запятой, каждое из которых округлено до 2 знаков после запятой:

import numpy as np #create NumPy matrix of random floats rounded to 2 decimal places np.round (np.random.rand (5, 2), 2) array([[0.37, 0.63], [0.51, 0.68], [0.23, 0.98], [0.62, 0.46], [0.02, 0.94]]) 

Примечание.Полную документацию по функции NumPy rand() можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные преобразования в Python:

numpy Задать матрицу случайных чисел указанного размера -- numpy.random.randint пример кода

vedro-compota's picture

  • low: int
    Lowest (signed) integer to be drawn from the distribution (unless high=None, in which case this parameter is the highest such integer).
  • high : int, optional If provided, one above the largest (signed) integer to be drawn from the distribution (see above for behavior if high=None).
  • size : int or tuple of ints, optional Параметр size задаёт:
    1. размерность матрицы (число элементов в передаваемом кортеже, в примере выше их три),
    2. и конкретную её форму (значения элементов кортежа).

Так, например, кортеж (m, n, k), задаст матрицу рамерами m * n * k. Значение по умолчанию None, при котором возвращается единственное значение.

  • out: int or ndarray of ints
    size-shaped array of random integers from the appropriate distribution, or a single such random int if size not provided.

Key Words for FKN + antitotal forum (CS VSU):

Заполнить элементы матрицы случайным образом целыми числами. Вывести элементы матрицы

Author24 — интернет-сервис помощи студентам

В питоне недавно, и язык не очень нравится но практические сдавать надо.

1 2 3 4 5 6 7 8 9 10 11 12 13 14
import random def creatArray(): print('Input first index matrix: ') x = int(input()) print('Input second index matrix: ') y = int(input()) array = ([0]*x)*y for i in range (0,x-1): for j in range (0, y-1): array[i][j] = random.randint(0,100) return array print(creatArray())

таким образом хотел заполнить массив, но выдает ошибку на строке 14 и 11
'TypeError: 'int' object does not support item assignment

Прошу обьясните в чем здесь проблема и помоги с решением с 3 заданиям (вывести номер столбцов. )

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Матрицы: случайным образом заполнить разными целыми числами
Матрицу A(m,n) случайным образом заполнить разными целыми числами от 1 до m x n. #include.

Заполнить массив случайным образом целыми числами
Составить программу, по которой: 1) заполнить массив A (40) случайным образом целыми числами с.

Заполнить случайным образом целыми числами из диапазона [-250, 250] двумерный массив 7x10 элементов и вывести
Можете помочь написать код? Буду очень благодарен! - Заполнить случайным образом целыми числами.

Заполнить массив случайным образом целыми числами с диапазона
Составить программу, по которой: 1) заполнить массив A (40) случайным образом целыми числами с.

Случайным образом заполнить массив из 20 элементов целыми числами
Случайным образом заполнить массив из 20 элементов целыми числами от x (–50≤ x < 50).

Эксперт Python

4623 / 2043 / 361
Регистрация: 17.03.2012
Сообщений: 10,116
Записей в блоге: 6

Потому что в строке 8 создаёте кортеж (tuple) вместо списка.
Но если нужно для практики - рекомендую numpy для подобных дел.

Эксперт С++

2380 / 1664 / 279
Регистрация: 29.05.2011
Сообщений: 3,399

1 2 3 4 5 6 7 8 9 10
import random def creatArray(): print('Input first index matrix: ') x = int(input()) print('Input second index matrix: ') y = int(input()) return [[random.randint(0,100) for i in range(x)] for j in range(y)] print(creatArray())

Или даже так

1 2 3 4 5 6 7
import random def creatArray(x, y): return [[random.randint(0,100) for i in range(x)] for j in range(y)] print(creatArray(int(input('Input first index matrix: ')), int(input('Input second index matrix: '))))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *