矢量化vectoized代码的上层 - python - numpy

时间:2016-09-22 14:02:53

标签: python pandas numpy vectorization

基本上我想对下面的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])

有关于如何应用它的任何建议吗?

0 个答案:

没有答案