Scipy:将数组划分为3个子数组

2024-04-27 04:01:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图弄清楚是否有一个numpy/scipy函数可以使用某种规则有效地将数组划分为子数组。你知道吗

我的问题是: 我有一个nxn矩阵,叫它W,还有一个向量h。 我现在想把W的列向量分成3个数组:

  • W\u pos,其中>;0表示来自W\u pos的所有向量
  • W\u null,其中=0表示从W\u null开始的所有向量W
  • W_neg,其中<;0表示来自W_neg的所有向量W

现在我是这样做的,这是工作,但我认为它不是很有效:

    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]

有更好的办法吗?谢谢你的帮助,如果有什么不清楚的请告诉我。 干杯


Tags: 函数posnumpy规则矩阵scipy数组向量