В чем разница между test1 = np.random.randint ((11, 20, 50)) и test1 = np.random.randint (11, 20, 50) - PullRequest
0 голосов
/ 06 апреля 2020

В то время как первый дает мне решение

test1 = np.random.randint((11, 20, 50))
>>> random array with order (1,3) 

ex-array ([1, 3, 43])

В то время как второй дает

test1 = np.random.randint(11, 20, 50)
>>> 50 random values b/w 11 to 20 in an array

ex-array ([17, 16, 14, 16, 18, 19, 19, 13, 13, 13, 14, 12, 16, 12, 16, 17, 19, 19, 12, 14, 17, 11 , 19, 14, 16, 13, 17, 12, 12, 19, 14, 18, 15, 17, 11, 12, 15, 16, 13, 16, 14, 19, 12, 18, 12, 15, 13 , 14, 16, 12])

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

1 Ответ

1 голос
/ 06 апреля 2020

Ваши два случая совпадают с:

In [211]: np.random.randint(low=0,high=(11, 20, 50),size=3)                                    
Out[211]: array([ 2, 17,  7])
In [212]: np.random.randint(low=11, high=20, size=50).shape                                    
Out[212]: (50,)

Один возвращает одно значение для каждого из диапазонов, определенных кортежами low и high, другой возвращает несколько значений, оцененных для одного общего range.

Второе наиболее распространенное использование. Первое - это удобство, которое кому-то будет полезно для некоторых людей. Это не может быть широко использовано или хорошо продумано. Я не приложил бы много усилий, чтобы понять это, если бы мне действительно не нужно было что-то подобное.

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