numpy - numpy.zeros 和 numpy.random.randn 的 numpy 参数不一致的任何原因

标签 numpy

我正在使用 numpy zeros 和 numpy.random.randn 实现计算

W1 = np.random.randn(n_h, n_x) * .01
b1 = np.zeros((n_h, 1))

我不知道为什么 random.randn() 可以接受两个整数,而 零()需要一个元组。有充分的理由吗?

干杯,JChen。

最佳答案

很可能这只是历史问题。 numpy由先前的几个包合并而成,并有长期的发展。一些怪癖得到了清理,其他的则保持原样。

randn(d0, d1, ..., dn)
zeros(shape, dtype=float, order='C')
randn有这个注释:

This is a convenience function. If you want an interface that takes a tuple as the first argument, use numpy.random.standard_normal instead.


standard_normal(size=None)

*很容易将元组传递给 randn :
np.random.randn(*(1,2,3))
np.zeros需要几个关键字参数。 randn才不是。您可以使用 (*args, **kwargs) 定义 Python 函数。签名。但是接受一个元组,尤其是一个常见用法为 shape 的元组。 ,更适合。但这是一个见仁见智的问题。
np.random.randnp.random.random_sample是另一个这样的一对。最有可能 randrandn是旧版本,standard_normalrandom_sample是较新的,旨在符合更常见的 tuple风格。

关于numpy - numpy.zeros 和 numpy.random.randn 的 numpy 参数不一致的任何原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46137809/

相关文章:

python - 获取 3D 空间中某个点的 26 个最近邻点 - 矢量化

python - Python中拟合曲线的最大圆半径

python - 比较 NumPy 数组的相似性

python - 更改不在索引列表中的 NumPy 数组的值

python - 在 Pandas 中添加日期

python - Python 中具有分数次幂的二项式展开

python - 如何更改每一行中特定单元格左侧的所有值

python - 加速 Pandas 数据框迭代

python - 如何按照我需要的方式 reshape 这个数组?

python - 如何使用 Numba 在 SciPy 中使用任意数量的变量和参数执行多重积分?