Что означает «*» в numy? - PullRequest
       3

Что означает «*» в numy?

4 голосов
/ 09 декабря 2011
>>> shape=(2,2)
>>> np.random.randn(*shape)
array([[-1.64633649, -0.03132273],
   [-0.92331459,  1.05325462]])

Я не могу найти его в документации Нумпи.Любая помощь приветствуется.

Ответы [ 2 ]

15 голосов
/ 09 декабря 2011

Это не специфичный для NumPy синтаксис;это синтаксис Python.Так называемый * -оператор - это синтаксис Python, который выполняет распаковку последовательности в списках аргументов (см. Распаковка списков аргументов ).

В вашем примере используется распаковка shapeкортеж в отдельные аргументы.Это необходимо, потому что numpy.random.randn принимает произвольное число целых чисел в качестве параметров, а не кортеж целых чисел.

Код из вопроса эквивалентен выполнению:

>>> np.random.randn(2, 2)
1 голос
/ 30 декабря 2011

Люди в других местах иногда называют это "восклицательным знаком". (для полноты ** делает то же самое, но с аргументами named / keyword).

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