如何根据True和False语句比较两个numpy数组

时间:2013-12-16 18:30:57

标签: python numpy

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

1 个答案:

答案 0 :(得分:1)

听起来我希望xv保持不变,但要uv goodTrue就是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}}