Это не специфичный для NumPy синтаксис;это синтаксис Python.Так называемый *
-оператор - это синтаксис Python, который выполняет распаковку последовательности в списках аргументов (см. Распаковка списков аргументов ).
В вашем примере используется распаковка shape
кортеж в отдельные аргументы.Это необходимо, потому что numpy.random.randn
принимает произвольное число целых чисел в качестве параметров, а не кортеж целых чисел.
Код из вопроса эквивалентен выполнению:
>>> np.random.randn(2, 2)