Преобразование списков python с использованием списков numpy [duplicate]

Ниже работает на sql server 2008

select *, ROW_NUMBER() OVER(order by items) as row# 
from 
( select 134 myColumn1, 34 myColumn2, 'd,c,k,e,f,g,h,a' comaSeperatedColumn) myTable
    cross apply 
SPLIT (rtrim(comaSeperatedColumn), ',') splitedTable -- gives 'items'  column 

Получит все декартово произведение с столбцами таблицы происхождения плюс «элементы» таблицы split.

20
задан Alex Riley 7 June 2015 в 17:23
поделиться

3 ответа

Твой подход прекрасен. Альтернативой является использование функции numpy.random.uniform() :

>>> numpy.random.uniform(-1, 1, size=10)
array([-0.92592953, -0.6045348 , -0.52860837,  0.00321798,  0.16050848,
       -0.50421058,  0.06754615,  0.46329675, -0.40952318,  0.49804386])

Что касается вероятности экстремумов: если бы она была идеализирована, то непрерывные случайные числа, вероятность получить один из крайних значений будет 0. Так как числа с плавающей запятой являются дискретизацией непрерывных действительных чисел, то в реальности существует некоторая положительная вероятность получить некоторые из крайностей. Это некоторая форма ошибки дискретизации, и почти наверняка эта ошибка будет искажена другими ошибками в вашей симуляции. Не беспокойтесь!

30
ответ дан Sven Marnach 25 August 2018 в 05:51
поделиться

Обратите внимание, что numpy.random.rand позволяет генерировать несколько выборок из равномерного распределения при одном вызове:

>>> np.random.rand(5)
array([ 0.69093485,  0.24590705,  0.02013208,  0.06921124,  0.73329277])

Он также позволяет создавать образцы в заданной форме:

>>> np.random.rand(3,2)
array([[ 0.14022471,  0.96360618], 
       [ 0.37601032,  0.25528411], 
       [ 0.49313049,  0.94909878]])

Как вы сказали, равномерно распределенные случайные числа между [-1, 1) могут быть сгенерированы с помощью:

>>> 2 * np.random.rand(5) - 1
array([ 0.86704088, -0.65406928, -0.02814943,  0.74080741, -0.14416581])
3
ответ дан Adobe 25 August 2018 в 05:51
поделиться

Из документации для numpy.random.random_sample :

Результаты получены из «непрерывного равномерного» распределения за указанный интервал. Чтобы пробовать Unif [A, b], b> a , умножьте вывод random_sample на (b-a) и добавьте a:

 (b - a) * random_sample() + a

Per Sven Ответ Марнаха, документация, вероятно, нуждается в обновлении для ссылки numpy.random.uniform .

2
ответ дан ecatmur 25 August 2018 в 05:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: