Опубликован: 22.12.2005 | Доступ: свободный | Студентов: 16667 / 511 | Оценка: 4.18 / 3.71 | Длительность: 16:16:00
ISBN: 978-5-9556-0109-0
Лекция 5:

Численные алгоритмы. Матричные вычисления

< Лекция 4 || Лекция 5: 12345 || Лекция 6 >

Модуль RandomArray

В этом модуле собраны функции для генерации массивов случайных чисел различных распределений и свойств. Их можно применять для математического моделирования.

Функция RandomArray.random() создает массивы из псевдослучайных чисел, равномерно распределенных в интервале (0, 1):

>>> import RandomArray
>>> print RandomArray.random(10)  # массив из 10 псевдослучайных чисел
[ 0.28374212  0.19260929  0.07045474  0.30547682  0.10842083  0.14049676
       0.01347435  0.37043894  0.47362471  0.37673479]
>>> print RandomArray.random([3,3])  # массив 3x3 из псевдослучайных чисел
[[ 0.53493741  0.44636754  0.20466961]
 [ 0.8911635   0.03570878  0.00965272]
 [ 0.78490953  0.20674807  0.23657821]]

Функция RandomArray.randint() для получения массива равномерно распределенных чисел из заданного интервала и заданной формы:

>>> print RandomArray.randint(1, 10, [10])
[8 1 9 9 7 5 2 5 3 2]
>>> print RandomArray.randint(1, 10, [10])
[2 2 5 5 7 7 3 4 3 7]

Можно получать и случайные перестановки с помощью RandomArray.permutation():

>>> print RandomArray.permutation(6)
[4 0 1 3 2 5]
>>> print RandomArray.permutation(6)
[1 2 0 3 5 4]

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

>>> print RandomArray.normal(0, 1, 30)
[-1.0944078   1.24862444  0.20415567 -0.74283403  0.72461408 -0.57834256
 0.30957144  0.8682853   1.10942173 -0.39661118  1.33383882  1.54818618
 0.18814971  0.89728773 -0.86146659  0.0184834  -1.46222591 -0.78427434
 1.09295738 -1.09731364  1.34913492 -0.75001568 -0.11239344  2.73692131
 -0.19881676 -0.49245331  1.54091263 -1.81212211  0.46522358 -0.08338884]

Следующая таблица приводит функции для других распределений:

Функция и ее аргументы Описание
F(dfn, dfd, shape=[]) F-распределение
beta(a, b, shape=[]) Бета-распределение
binomial(trials, p, shape=[]) Биномиальное распределение
chi_square(df, shape=[]) Распределение хи-квадрат
exponential(mean, shape=[]) Экспоненциальное распределение
gamma(a, r, shape=[]) Гамма-распределение
multivariate_normal(mean, cov, shape=[]) Многомерное нормальное распределение
negative_binomial(trials, p, shape=[]) Негативное биномиальное
noncentral_F(dfn, dfd, nconc, shape=[]) Нецентральное F-распределение
noncentral_chi_square(df, nconc, shape=[]) Нецентральное хи-квадрат распределение
normal(mean, std, shape=[]) Нормальное распределение
permutation(n) Случайная перестановка
poisson(mean, shape=[]) Пуассоновское распределение
randint(min, max=None, shape=[]) Случайное целое
random(shape=[]) Равномерное распределение на интервале (0, 1)
random_integers(max, min=1, shape=[]) Случайное целое
standard_normal(shape=[]) Стандартное нормальное распределение
uniform(min, max, shape=[]) Равномерное распределение

Заключение

В этой лекции рассматривался набор модулей для численных вычислений. Модуль Numeric определяет тип многомерный массив и множество функций для работы с массивами. Также были представлены модули для линейной алгебры и моделирования последовательностей случайных чисел различных распределений.

Ссылки

Сайт, посвященный Numeric Python: http://www.scipy.org/

< Лекция 4 || Лекция 5: 12345 || Лекция 6 >
Андрей Егоров
Андрей Егоров

def bin(n):

"""Цифры двоичного представления натурального числа """

if n == 0:

   return []

n, d = divmod(n, 2)

return bin(n) + [d]

print bin(69)

Что значит здесь return[] ? Возвращает список? Непонятно какой список? Откуда он? 

 

 

Асмик Гаряка
Асмик Гаряка

Почему при вычислении рейтинга не учитывается уровень, как описано? Для всех курсов У=1, хотя для Специалист должно быть 2.

Игорь Горчаков
Игорь Горчаков
Россия, г. Москва