基本上我想对下面的for
循环进行矢量化,np.apply_along_axis
用于加速比较。但是我想使用另外的for
循环消除。这样做的机会是什么?最终目标确实是一次性使用的掩码(在循环内部,这就是我正在做的事情)。
import pandas as pd
import numpy as np
original = pd.DataFrame(
[np.arange(0,500,1), np.arange(1,501,1), np.arange(2,502,1), np.arange(3,503,1), np.arange(4,504,1), ],
index=list('abcde'),
columns=pd.to_datetime(pd.date_range('2011-1-1', periods=500))).transpose()
lists = np.array([[0, 1, 2, 3], [2, 3, 4, 5]]) #db_matrix.loc[:, ['a', 'b', 'c', 'd']].as_matrix()
original_m_numpy_repr = original.loc[:, ['a', 'b', 'c', 'd']].as_matrix()
for l in lists:
mask = np.apply_along_axis(lambda x: np.array_equal(x, l), 1, original_m_numpy_repr)
print(original[mask])
有关于如何应用它的任何建议吗?