假设您有两个长度相等的列表,由 int 列表组成。
y_hat = np.array([[0,1,2,6], [1,2,3,5]])
y_pred = np.array([[0, 3], [0, 4]])
您想将 y_pred 的每个列表与 y_hat 中的等效(相同索引)列表进行比较,如果 y_pred 的第 i 个元素在 y_hat 中,则返回一个 bool 列表:
result = np.array([[True, False], [False, False]]) # same shape of y_pred
你不能使用 np.isin(),因为它会返回:
result = np.isin(y_pred, y_hat)
# np.array([[True, True], [True, False]])
是否有一个矢量化的 .isin() 函数来避免 for 循环?
### Slow for loop
result = []
for y_h, y_p in zip(y_hat, y_pred):
result_one = np.isin(y_p, y_h)
result.append(result_one)