Как заполнить матрицу случайными числами python
Перейти к содержимому

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

  • автор:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Random Matrices with Python

Y. Natsume

As the name implies, random matrices are basically matrices with randomly generated elements. From a superficial viewpoint, matrices of randomly generated numbers might not be very useful, however it turns out that they have been successfully applied to various fields, such as nuclear physics and neuroscience. In this article, we will explore the properties of the distributions of the eigenvalues of random matrices!

The Wigner Semicircle and Surmise

According to random matrix theory, the distribution of the eigenvalues of an ensemble of symmetric random matrices can be approximated by the Wigner semicircle: f(x) = (2 / (πR²))·√(R² — x²) .

Correspondingly, the distribution of the eigenvalue spacings of an ensemble of symmetric random matrices can be approximated by the Wigner surmise: f(s) = (πs / 2)·exp(-πs² / 4) . The Wigner surmise was originally developed to describe the the spaces between points in the spectra of the nuclei of heavy atoms such as Uranium.

The Grand Orthogonal Ensemble

The Grand Orthogonal Ensemble uses random matrices to model Hamiltonians with time reversal symmetry.

The Grand Unified Ensemble

The Grand Unified Ensemble which models Hamiltonians without time reversal symmetry.

The Symmetric Bernoulli Ensemble

Finally, we have the Symmetric Bernoulli Ensemble which are random sign matrices constrained to be symmetric.

Eigenvalues of the Grand Orthogonal Ensemble

For now we will explore the the eigenvalue distribution of the Grand Orthogonal Ensemble. Using the code below, we generate 1000 different symmetric random matrices with dimensions of 10 × 10, and compute and plot the spacings between the eigenvalues.

For the Grand Orthogonal ensemble, we find that the distribution of the eigenvalues are indeed approximated by the Wigner semicircle, and the distribution of the eigenvalue spacings are approximated by the Wigner surmise.

Eigenvalues of the Grand Unified Ensemble and the Symmetric Bernoulli Ensemble

Likewise, we find that the Wigner semicircle and surmise are good approximations for both the Grand Unified Ensemble and the Symmetric Bernoulli Ensemble as well.

Simple way to create matrix of random numbers

which is extremely unreadable and does not fit on one line.

13 Answers 13

You can drop the range(len()) :

But really, you should probably use numpy.

Pavel Anossov's user avatar

Docstring: rand(d0, d1, . dn)

Random values in a given shape.

Create an array of the given shape and propagate it with random samples from a uniform distribution over [0, 1) .

Noki's user avatar

use np.random.randint() as np.random.random_integers() is deprecated

mgrotheer's user avatar

Looks like you are doing a Python implementation of the Coursera Machine Learning Neural Network exercise. Here’s what I did for randInitializeWeights(L_in, L_out)

For creating an array of random numbers NumPy provides array creation using:

Real numbers

Integers

For creating array using random Real numbers: there are 2 options

  1. random.rand (for uniform distribution of the generated random numbers )
  2. random.randn (for normal distribution of the generated random numbers )

For creating array using random Integers:

  • low = Lowest (signed) integer to be drawn from the distribution
  • high(optional)= If provided, one above the largest (signed) integer to be drawn from the distribution
  • size(optional) = Output shape i.e. if the given shape is, e.g., (m, n, k), then m * n * k samples are drawn
  • dtype(optional) = Desired dtype of the result.

The given example will produce an array of random integers between 0 and 4, its size will be 5*5 and have 25 integers

in order to create 5 by 5 matrix, it should be modified to

arr2 = np.random.randint(0,5,size = (5,5)), change the multiplication symbol* to a comma ,#

[[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]]

The given example will produce an array of random integers between 0 and 1, its size will be 1*10 and will have 10 integers

SUJITKUMAR SINGH's user avatar

First, create numpy array then convert it into matrix . See the code below:

Lokesh Sharma's user avatar

For random numbers out of 10. For out of 20 we have to multiply by 20.

Rajat Subhra Bhowmick's user avatar

When you say «a matrix of random numbers», you can use numpy as Pavel https://stackoverflow.com/a/15451997/6169225 mentioned above, in this case I’m assuming to you it is irrelevant what distribution these (pseudo) random numbers adhere to.

However, if you require a particular distribution (I imagine you are interested in the uniform distribution), numpy.random has very useful methods for you. For example, let’s say you want a 3×2 matrix with a pseudo random uniform distribution bounded by [low,high]. You can do this like so:

Note, you can replace uniform by any number of distributions supported by this library.

Генераторы списков для матричных операций. Примеры

Генераторы списков удобно использовать для матриц (многомерных массивов) чисел заданной размерности. Матрицы можно представлять в виде кортежей или списков.
Лучше матрицы представлять в виде вложенных списков. В наиболее общем случае, представление двумерной матрицы в виде списка на языке Python имеет следующий вид

  • MatrixName – имя матрицы;
  • a11 , …, amn — элементы матрицы. Это могут быть числа, числа с плавающей запятой, символы, строки, логические значения ( true , false ). Также это могут быть более сложные объекты, например, те же списки, кортежи или множества.

Именно генераторы списков являются наиболее удобными для обработки матриц любой размерности, поскольку они позволяют автоматически сканировать строки и столбцы матриц.

2. Примеры решения задач с использованием генераторов списков
2.1. Задачи на построение матриц
2.1.1. Построение матрицы заданной размерности. Элементы матрицы формируются случайным образом

Условие задачи. Построить матрицу заданной размерности m*n и вывести ее на экран. Элементы матрицы формируются случайно и имеют значение от 1 до 10 включительно.

Решение.

2.1.2. Формирование двумерной матрицы заданной размерности. Элементы матрицы вводятся с клавиатуры

Условие задачи. Сформировать матрицу размерностью m×n . Значение размеров m , n и значения элементов вводятся с клавиатуры.

Решение.

2.2. Задачи на обработку данных, которые размещаются в матрице
2.2.1. Вычисление количества элементов матрицы, которые больше 5

Условие задачи. Построить матрицу целых чисел размерностью m×n, где m — количество строк матрицы, n — количество столбцов матрицы. Значения m и n вводятся с клавиатуры. Числа в матрице формируются случайным образом и находятся в пределах от 1 до 10. Используя генератор списков вычислить количество элементов матрицы, которые более 5.

Решение.

2.2.2. Задача. Исчисление суммы элементов матрицы согласно условию

Условие задачи. Задан двумерный массив целых чисел размером m×n. Определить сумму элементов массива, которые находятся в пределах [5; 10]. Элементы массива вводятся с клавиатуры.

Решение.

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

2.3.2. Создать результирующую матрицу на основе исходной согласно с заданным условием

Условие задачи. Задана квадратная матрица A целых чисел размерностью n . На основе матрицы A образовать матрицу B , каждый элемент которой определяется по правилу:

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

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