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

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

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

который крайне нечитаем и не помещается в одну строку.

Строка документации: rand (d0, d1, . dn)

Случайные значения в заданной форме.

Создайте массив заданной формы и распространите его со случайными выборками из равномерного распределения [0, 1) .

Вы можете отказаться от range(len()) :

Но на самом деле вам, вероятно, следует использовать numpy.

использовать np.random.randint() как numpy.random.random_integers() не рекомендуется

Похоже, вы выполняете Python-реализацию упражнения для нейронной сети машинного обучения Coursera. Вот что я сделал для randInitializeWeights (L_in, L_out)

Сначала создайте numpy массив, а затем преобразуйте его в matrix . См. Код ниже:

Для случайных чисел из 10. Для случайных чисел из 20 мы должны умножить на 20.

Когда вы говорите «матрица случайных чисел», вы можете использовать numpy, как Павел https://stackoverflow.com/a/15451997/6169225, упомянутый выше, в этом случае я предполагаю, что вам неважно, какое распределение эти (псевдо ) случайных чисел придерживаются.

Однако, если вам требуется конкретный дистрибутив (я полагаю, вы заинтересованы в равномерном распределении), у вас numpy.random есть очень полезные методы для вас. Например, предположим, что вам нужна матрица 3×2 с псевдослучайным равномерным распределением, ограниченным [low, high]. Сделать это можно так:

Обратите внимание: вы можете заменить uniform любое количество дистрибутивов, поддерживаемых этой библиотекой.

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

Следующее выводит матрицу 2 на 3 случайных целых чисел от 0 до 10:

Для создания массива случайных чисел NumPy предоставляет создание массива, используя:

Действительные числа

Целые числа

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

  1. random.rand (для равномерного распределения сгенерированных случайных чисел)
  2. random.randn (для нормального распределения сгенерированных случайных чисел)

Для создания массива с использованием случайных целых чисел:

  • low = Наименьшее (знаковое) целое число, извлекаемое из распределения
  • high (необязательно) = Если предоставлено, на единицу выше наибольшего (знакового) целого числа, которое будет извлечено из распределения
  • size (необязательно) = Форма вывода, т.е. если заданная форма, например, (m, n, k), то отрисовывается m * n * k образцов
  • dtype (необязательно) = желаемый dtype результата.

В данном примере будет создан массив случайных целых чисел от 0 до 4, его размер будет 5 * 5 и 25 целых чисел.

чтобы создать матрицу 5 на 5, ее нужно изменить на

arr2 = np.random.randint (0,5, size = (5,5)), замените символ умножения * на запятую, #

[[2 1 1 0 1] [3 2 1 4 3] [2 3 0 3 3] [1 3 1 0 0] [4 1 2 0 1]]

В данном примере будет создан массив случайных целых чисел от 0 до 1, его размер будет 1 * 10 и будет 10 целых чисел.

NumPy, часть 3: random

Здравствуйте! Я продолжаю работу над пособием по 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 в Python

Чтобы создать массив numpy определенной формы со случайными значениями в Python, используйте rand() с формой массива, переданной в качестве аргумента.

В этом руководстве мы узнаем, как создать массив numpy со случайными значениями, используя примеры.

Синтаксис

Синтаксис функции rand():

Где, d0, d1, d2, .. – размеры в каждом измерении массива.

Например, numpy.random.rand (2,4) означает двумерный массив формы 2×4. И numpy.random.rand (51,4,8,3) означает 4-мерный массив формы 51x4x8x3.

Функция возвращает массив numpy с указанной формой, заполненный случайными значениями с плавающей запятой от 0 до 1.

Пример 1: создание одномерного массива

Чтобы создать одномерный массив numpy со случайными значениями, передайте длину массива функции rand().

В этом примере мы создадим одномерный массив numpy длиной 7 со случайными значениями для элементов.

Пример 2

Чтобы создать двумерный массив numpy со случайными значениями, передайте требуемую длину массива по двум измерениям в функцию rand().

В этом примере мы создадим двумерный массив numpy длиной 2 в измерении-0 и длиной 4 в измерении-1 со случайными значениями.

Пример 3

Чтобы создать трехмерный массив numpy со случайными значениями, передайте длины по трем измерениям массива в функцию rand().

В этом примере мы создадим трехмерный массив чисел длиной 4, 2, 3 по трем измерениям со случайными значениями.

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

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