Тип данных для numpy.rand.seed () - PullRequest
0 голосов
/ 11 апреля 2019

Попытка ввести время выполнения семени через параметр командной строки, поэтому хотел понять, что является типом данных numpy.rand.seed ()

Ответы [ 2 ]

0 голосов
/ 11 апреля 2019

Из нудистских документов по np.random.seed():

seed : int or 1-d array_like, optional
    Seed for RandomState. Must be convertible to 32 bit unsigned integers.

Обратите внимание на сообщение об ошибке, которое вы получаете, когда пытаетесь использовать какой-либо объект, например строку:

In [5]: np.random.seed('1234')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
mtrand.pyx in mtrand.RandomState.seed()

TypeError: 'str' object cannot be interpreted as an integer

During handling of the above exception, another exception occurred:

TypeError                                 Traceback (most recent call last)
<ipython-input-5-d50c476bf3fe> in <module>
----> 1 np.random.seed('1234')

mtrand.pyx in mtrand.RandomState.seed()

TypeError: Cannot cast array from dtype('<U4') to dtype('int64') according to the rule 'safe'

Таким образом, вы должны передать объект, который можно преобразовать с помощью «безопасного» приведения. Насколько я могу судить, простой способ проверить это с помощью np.can_cast(o, np.uint32) (документы здесь ); все, что вернет True, будет здесь пригодно. Однако то, что фактически проверено, можно увидеть в исходном коде здесь , где он преобразует входной объект в массив типа np.int64 с безопасным приведением, а затем проверяет, что объект является 1-й и что значения находятся в диапазоне от 0 до 2 ^ 32 - 1, перед тем, как привести их к беззнаковому длинному для использования в пустой библиотеке C.

Таким образом, однострочное описание может быть таким: любое «безопасное приведение к массиву 1-d int64, где значения заканчиваются между 0 и 2 ^ 32 - 1 после преобразования», может быть передано в np.random.seed().

0 голосов
/ 11 апреля 2019

Согласно https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.seed.html это должен быть целое число или массив из 1-го числа целых чисел, преобразуемый в 32-разрядное целое число без знака.Так что вы должны быть в порядке с любым целым числом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...