试图使下面的代码执行得更快
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功能,并继续使用数组。