如何使for循环执行得更快



试图使下面的代码执行得更快

def objects_to_binary_vector(self, object_seq: Sequence[Any]) -> 
np.ndarray:
binary=list(np.zeros(len(self.vocab)+self.start))
for i in range(len(self.vocab)):
if self.vocab[i] in object_seq:
binary[i+self.start] = 1
return np.array(binary)

我认为以下方法可以奏效:

binary = np.zeros(len(self.vocab) + self.start)
binary[self.start:][np.isin(self.vocab, object_seq)] = 1
return binary

注意:不要像在原始代码中那样在列表和NumPy数组之间来回切换。一旦你有了一个NumPy数组,试着使用NumPy功能,并继续使用数组。

相关内容

  • 没有找到相关文章

最新更新