python转javascript numpy ndarray操作混淆

我正在尝试将一些 python numpy 代码转换为 javascript,但我不确定以下代码实际在做什么。

self.W = np.random.rand(size, size)-0.5

self.W /= 0.9

在这种情况下做什么- 0.5?这是否从多维数组中的每个数字中减去 0.5。在那条线的下方,除法是否发生在 self.W 内部的每个元素上?要转换为 javascript,我是否会遍历所有元素并将操作应用于该索引处的元素?

另外,在下面的代码片段中,实际发生了什么??我不知道发生了什么。我习惯用括号表示法作为索引,但这看起来像是一个条件(比如三元?),但它看起来也像是在生成一个新矩阵来执行此操作。

self.W[np.random.rand(size, size)>self.sparsity] = 0

谢谢你的帮助。

暮色呼如
浏览 131回答 1
1回答

郎朗坤

您可能应该只安装适当版本的 Python 并numpy在尝试这样的转换时。通过在 CLI 上进行几行简单的测试,您就可以回答自己的问题:>>> import numpy as np>>> np.random.rand(1, 2)array([[0.08239857, 0.15732393]])>>> x = np.random.rand(1, 2)>>> xarray([[0.08155715, 0.57869165]])>>> x - .5array([[-0.41844285,  0.07869165]])所以,是的——该numpy.ndarray类型定义了一个减法操作,当以数字作为第二个操作数并以数组作为第一个操作数时,从数组的每个元素中减去该数字。对于除法,类似地:>>> x *= 10>>> xarray([[0.81557146, 5.78691654]])>>> x /= 10>>> xarray([[0.08155715, 0.57869165]])不同之处在于,它/会返回一个新的结果数组 (in x / 10),而将/=结果分配给x,覆盖其在 中的值x /= 10。最后一个例子比较复杂,但非常典型地numpy说明了库的实现方式。类似于和-被/=分发的操作,对数组应用比较会分发它并返回一个布尔值数组,然后可以将其用作“索引”以准确选择布尔值数组所对应的数组值是True。0然后,在您给出的示例中,它会继续将这些选定的值准确设置为。询问如何用 JavaScript 编写这些操作只是要求 SO 为您编写代码——既然您了解会发生什么,您应该尝试在 JavaScript 中实现相同的逻辑。如果遇到您不理解的特定问题,您可以针对这些问题提出单独的问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python