【发布时间】:2011-12-09 18:32:29
【问题描述】:
>>> shape=(2,2)
>>> np.random.randn(*shape)
array([[-1.64633649, -0.03132273],
[-0.92331459, 1.05325462]])
我在 numpy 的文档中找不到它。任何帮助表示赞赏。
【问题讨论】:
>>> shape=(2,2)
>>> np.random.randn(*shape)
array([[-1.64633649, -0.03132273],
[-0.92331459, 1.05325462]])
我在 numpy 的文档中找不到它。任何帮助表示赞赏。
【问题讨论】:
这不是 NumPy 特定的语法;它是 Python 语法。所谓的*-operator 是 Python 语法,它在参数列表中进行序列解包(参见Unpacking Argument Lists)。
您的示例中的用途是将shape 元组解压缩为单独的参数。这是必需的,因为numpy.random.randn 将任意数量的整数作为参数,而不是整数元组。
问题中的代码相当于做:
>>> np.random.randn(2, 2)
【讨论】:
People other places sometimes call it the 'splat'.(为了完整起见,** 做同样的事情,但带有命名/关键字参数)。
【讨论】: