在这段python代码中,大于符号意味着什么? 我试图在C++中实现一个受限的Boltzmann机。我将此Python代码用作指南:
这是第37行:在这段python代码中,大于符号意味着什么? 我试图在C++中实现一个受限的Boltzmann机。我将此Python代码用作指南: ,python,c++,numpy,syntax,notation,Python,C++,Numpy,Syntax,Notation,这是第37行: pos_hidden_states = pos_hidden_probs > np.random.rand(num_examples, self.num_hidden + 1) PosiHydNyStand和PasyHydDyPro都是2D矩阵,C++中的类型为代码>向量< /代码>,NUMYSUBLASH和NUMLHOLD都是整数。p> 有人能解释一下大于符号在这里的含义吗?由于操作符重载,操作符几乎可以做任何事情——它只需调用对象上的特殊方法。但是,如果没有其他信息
pos_hidden_states = pos_hidden_probs > np.random.rand(num_examples, self.num_hidden + 1)
PosiHydNyStand和PasyHydDyPro都是2D矩阵,C++中的类型为代码>向量< /代码>,NUMYSUBLASH和NUMLHOLD都是整数。p>
有人能解释一下大于符号在这里的含义吗?由于操作符重载,
操作符几乎可以做任何事情——它只需调用对象上的特殊方法。但是,如果没有其他信息,我希望它能简单地评估“大于”,并返回<代码>布尔O/St>值。 < P>可能不容易将代码> NoMPy<代码>转换成C++,在代码< NoMPy中的大量抽象。无论如何,它作为一个向量化比较,因为np.random.rand(…)
返回一个np.ndarray
,如果pos\u hidden\u probs
是一个标量或np.ndarray
,它将以向量化(即元素化)的方式运行:
如果pos\u hidden\u probs
是某种np.ndarray
,则行为可能受到numpy的一个特性的影响:
>>> np.array([0.5, 0.5]) > rand_array
array([[ True, False],
[False, True]], dtype=bool)
>>> np.array([0.5, .9]) > rand_array
array([[ True, True],
[False, True]], dtype=bool)
>>>
操作符在NumPy中按元素工作,例如
np.array([[1,2],[3,4]]) > np.array([[2,2],[2,2]])
为您提供np.array([[False,False],[True,True]])
NumPy也有,这赋予了不同维度数组之间比较的意义。将隐藏的prob(本例中为浮点)与2d NumPy数组中的每个项进行比较,并返回一个2d布尔值数组:
>>> import numpy as np
>>> np.random.randn(3,2)array([[-0.74615339, -1.22667606],
[ 0.22729787, 0.72070398],
[-1.06876014, 0.06367189]])
>>> 5. > np.random.randn(3,2)
array([[ True, True],
[ True, True],
[ True, True]], dtype=bool)
>>>
参考这里&
>>> import numpy as np
>>> np.random.randn(3,2)array([[-0.74615339, -1.22667606],
[ 0.22729787, 0.72070398],
[-1.06876014, 0.06367189]])
>>> 5. > np.random.randn(3,2)
array([[ True, True],
[ True, True],
[ True, True]], dtype=bool)
>>>