Принуждение драйвера к соответствию устройства

Ответ JoeCondron (EDIT: до его последнего редактирования!) классный, но есть преимущество для значительного улучшения, избегая не-векторизации перечисления:

def get_first_non_null_vect(df):
    a = df.values
    col_index = np.isnan(a).argmin(axis=1)
    return a[np.arange(a.shape[0]), col_index]

Улучшение является небольшим, если DataFrame относительно плоский:

In [4]: df = pd.DataFrame(np.random.choice([1, np.nan], (10000, 1500), p=(0.01, 0.99)))

In [5]: %timeit get_first_non_null(df)
10 loops, best of 3: 34.9 ms per loop

In [6]: %timeit get_first_non_null_vect(df)
10 loops, best of 3: 31.6 ms per loop

... но может иметь значение для slim DataFrames:

In [7]: df = pd.DataFrame(np.random.choice([1, np.nan], (10000, 15), p=(0.1, 0.9)))

In [8]: %timeit get_first_non_null(df)
100 loops, best of 3: 3.75 ms per loop

In [9]: %timeit get_first_non_null_vect(df)
1000 loops, best of 3: 718 µs per loop

По сравнению с векторизованной версией JoeCondron время выполнения очень (это все же немного быстрее для тонких DataFrames и немного медленнее для больших).

22
задан 2 revs 15 January 2009 в 08:04
поделиться

2 ответа

Найдите модуль в sysfs дереве. В этом случае это было в

/sys/bus/usb-serial/drivers/cp2101

В этом каталоге, существует new_id запись файла, которая может использоваться для динамичного добавления пары PID VID как это:

echo VID PID >new_id

Вот запись LWN об этой функции

23
ответ дан 2 revs 29 November 2019 в 05:31
поделиться

Вы не должны на самом деле перекомпилировать целое ядро, перекомпилировать только соответствующий модуль ядра с обновленной таблицей соответствия будет достаточно, в случае, если это этот ответ, не работает над Вашим ядром.

1
ответ дан 2 revs 29 November 2019 в 05:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: