numpy中'*'的含义是什么?
>>> shape=(2,2)
>>> np.random.randn(*shape)
array([[-1.64633649, -0.03132273],
[-0.92331459, 1.05325462]])
我在numpy的文档里找不到这个。任何帮助都很感激。
2 个回答
2
在其他地方,有些人会把它叫做“星号”(splat)。另外,**
也有类似的功能,不过它是用来处理带名字的参数或者关键字参数的。
17
这不是NumPy特有的语法,而是Python的语法。所谓的*
运算符是Python中的一种语法,用于在参数列表中进行序列解包(可以参考解包参数列表)。
在你的例子中,使用这个运算符是为了将shape
这个元组拆分成单独的参数。这是因为numpy.random.randn
函数需要接受任意数量的整数作为参数,而不是一个整数的元组。
问题中的代码实际上等同于这样做:
>>> np.random.randn(2, 2)