self.x = np.array( [np.random.uniform( -5, 5 ) for _ in xrange( 100 )] )
v = np.array( [np.random.uniform( -5, 5 ) for _ in xrange( 100 )] )
good = np.random.uniform(0,1,5) < 0.5
good = good.reshape(1,self.x.shape[1])
self.x[good] = v[good]
u = self.x[good]
我们假设good
是[False True True True True]
。 u
向量丢弃第一个值为False,其余值被替换为True。但我希望它保留以前的self.x
答案 0 :(得分:1)
听起来我希望x
和v
保持不变,但要u
,v
good
,True
就是x
np.where
,但x = np.arange(1,6)
v = 10*x
good = np.array([False, True, True, True, True])
In [690]: x
Out[690]: array([1, 2, 3, 4, 5])
In [691]: v
Out[691]: array([10, 20, 30, 40, 50])
In [692]: good
Out[692]: array([False, True, True, True, True], dtype=bool)
In [693]: u = np.where(good, v, x)
In [694]: u
Out[694]: array([ 1, 20, 30, 40, 50])
In [695]: x
Out[695]: array([1, 2, 3, 4, 5])
In [696]: v
Out[696]: array([10, 20, 30, 40, 50])
在其他地方?为此,您可以使用函数{{1}}。
以下是一个例子:
{{1}}