我试图弄清楚是否有一个numpy / scipy函数可以使用某个规则将数组有效地分割成子数组。
我的问题如下: 我有一个nxn矩阵,我们称之为W.我有一个向量h。 我现在想将W的列向量分成3个数组:
现在我这样做,这是有效的,但我觉得效率不高:
nonzero_indices = (sp.isclose(sp.dot(h_k.T, W),0, 10e-12) == False)
self.W_null = W[:,~nonzero_indices]
W_nonzero = W[:,nonzero_indices]
pos_indices = (sp.dot(h_k.T, W_nonzero) > 0)
W_pos = W_nonzero[:,pos_indices]
W_neg = W_nonzero[:,~pos_indices]
有更好的方法吗?感谢您的帮助,如果有什么不清楚请告诉我。 干杯
答案 0 :(得分:2)
w=np.random.random((10,10))-0.5 # example array
wneg = w[w<0]
wzero = w[w==0]
wpos = w[w>0]