Я запустил некоторый тест, и определенно попытайтесь использовать dd.Aggregation
а не apply
. посмотрите ниже результатов:
%%timeit
df = dask.datasets.timeseries()
df_gb = df.groupby(df.name)
gp_col = ['x','y' ,'id']
list_ser_gb = [df_gb[att_col_gr].apply(set_list_att2,
meta=pd.Series(dtype='object', name=f'{att_col_gr}_att'))
for att_col_gr in gp_col]
df_edge_att = df_gb.size().to_frame(name="Weight")
for ser in list_ser_gb:
df_edge_att = df_edge_att.join(ser.to_frame(), how='left')
df_edge_att.head()
результаты:
5 минимальных 44 В± 11,2 с на цикл (означают В± станд. dev. 7 выполнений, 1 цикл каждый)
Однако выполнение с dd.Aggregation
существует значительное улучшение:
%%timeit
df = dask.datasets.timeseries()
custom_agg = dd.Aggregation(
'custom_agg',
lambda s: s.apply(set),
lambda s: s.apply(lambda chunks: list(set(itertools.chain.from_iterable(chunks)))),
)
df_gb = df.groupby(df.name)
gp_col = ['x','y' ,'id']
list_ser_gb = [df_gb[att_col_gr].agg(custom_agg) for att_col_gr in gp_col]
df_edge_att = df_gb.size().to_frame(name="Weight")
for ser in list_ser_gb:
df_edge_att = df_edge_att.join(ser.to_frame(), how='left')
df_edge_att.head()
результаты:
2 минуты В± 1,13 с на цикл (означают В± станд. dev. 7 выполнений, 1 цикл каждый)
Из того, что мало я знаю, что функциональность Отражателя.NET доступна в в значительной степени всем Java IDE, включая Eclipse. Просто добавьте a jar
файл к проекты и Вы можете просмотреть его классы, как Вы просматриваете свои собственные классы.
Для аспекта декомпилятора (в противоположность чистому средству просмотра классов) также существуют некоторые альтернативы. Инструмент JDK javap
только декомпиляции к байт-коду, таким образом, не действительно полезно добраться до исходного кода (но мог бы помочь с получением понимания кода).
JAD является довольно популярным декомпилятором в мире Java, и он производит компилируемый код Java большую часть времени (некоторые последовательности байт-кода не легко переводимы к допустимому Java, 'хотя, таким образом, некоторые угловые случаи существуют).
Посмотрите, Как я декомпилирую файлы класса Java? Существует ссылка там на JD-GUI, который, кажется, о том, что Вы ищете.
Править: Также посмотрите, Открывают Java *.Class Файлы.
Редактирование 2: И Лучший свободный Java .class средство просмотра?, который конкретно упоминает Отражатель.NET.
Я не супер знаком с Java, но JBrowser работает на Вас?
Можно получить JAD для декомпиляции .class в .java. Это довольно хорошо в нем.
Если Вы используете Eclipse, получают jadclipse плагин также. Необходимо будет настроить путь к jad.exe. В следующий раз, когда Вы открываете .class, Вы будете видеть декомпилируемый источник вместо .class объявления. И можно просмотреть с F3 также. Это очень полезно.