Ниже работает на 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.
Твой подход прекрасен. Альтернативой является использование функции 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. Так как числа с плавающей запятой являются дискретизацией непрерывных действительных чисел, то в реальности существует некоторая положительная вероятность получить некоторые из крайностей. Это некоторая форма ошибки дискретизации, и почти наверняка эта ошибка будет искажена другими ошибками в вашей симуляции. Не беспокойтесь!
Обратите внимание, что 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])
Из документации для numpy.random.random_sample
:
Результаты получены из «непрерывного равномерного» распределения за указанный интервал. Чтобы пробовать Unif [A, b], b> a , умножьте вывод random_sample на
(b-a)
и добавьтеa
:blockquote>(b - a) * random_sample() + a
Per Sven Ответ Марнаха, документация, вероятно, нуждается в обновлении для ссылки
numpy.random.uniform
.