将矢量值分配给numpy中的段

时间:2015-03-02 17:10:10

标签: numpy

我尝试使用numpy(并且只有numpy)使用y中的边缘来分割矢量cutoffsyg被定义为列向量,但a作为行向量返回。运行g += a.transpose()会通过引入100x100阵列生成形状一致性错误(在下面复制)。必须有一种更优雅的方式来完成这项工作。感谢。

 y = np.random.uniform(0,1,100)
 cutoffs = np.random.uniform(0,1,3)
 cutoffs.sort()
 g = np.zeros( y.size )
 for c in np.hstack( [ cutoffs , 1. ] ):
     a = np.array( [ y < c ] )
     g += a.transpose()


 Traceback (most recent call last):
   File "<stdin>", line 3, in <module>
 ValueError: non-broadcastable output operand with shape (100,) doesn't match the broadcast shape (100,100)

1 个答案:

答案 0 :(得分:1)

使用

a = (y < c).reshape(-1)
g += a