Имеет Lua будущее как язык сценариев общего назначения?

Вы можете воспользоваться функцией apply на pd.DataFrame. Это позволяет применять произвольные функции к столбцам или строкам таблицы DataFrame. Используя ваш пример:

df = pd.DataFrame([[20, 10], [60, 25], [50, 15]])

Для создания таблиц сопряженности можно использовать lambda и некоторые векторные операции

>>> members = np.array([70, 30])
>>> df.apply(lambda x: np.array([x, members-x]), axis=1)
0    [[20, 10], [50, 20]]
1    [[60, 25], [10,  5]]
2    [[50, 15], [20, 15]]

И это, конечно, можно обернуть функцией scipy . [+1112]

df.apply(lambda x: chi2_contingency(np.array([x, members-x])), axis=1)

Это производит все возможные возвращаемые значения, но, разрезая выходные данные, можно указать желаемые возвращаемые значения, оставив, например, ожидаемые массивы. Полученный ряд также может быть преобразован в DataFrame.

>>> s = df.apply(lambda x: chi2_contingency(np.array([x, members-x]))[:-1], axis=1)
>>> s
0    (0.056689342403628114, 0.8118072280034329, 1)
1                                    (0.0, 1.0, 1)
2      (3.349031920460492, 0.06724454934343391, 1)
dtype: object
>>> s.apply(pd.Series)
          0         1    2
0  0.056689  0.811807  1.0
1  0.000000  1.000000  1.0
2  3.349032  0.067245  1.0

Сейчас я не знаю об эффективности выполнения этого подхода, но я бы доверял тем, кто реализовал эти функции. И, скорее всего, скорость не так критична. Но, по крайней мере, он эффективен в том смысле, что его (гипотетически) легко понять и быстро написать.

6
задан Community 23 May 2017 в 12:16
поделиться

8 ответов

Я думаю, что это имеет большое будущее, много проектов начинает принимать его, поскольку это - простота и полноценность.

Пример: потрясающий WM (менеджер окон)

Проект недавно выпустил версию 3, включив новую систему конфигурации, полностью записанную в Lua. Позволяя Вам буквально записать Ваш конфигурационный файл как программу, циклы, булевские переменные, структуры данных. Лично я люблю синтаксис и гибкость такой системы, я думаю, что это имеет большой потенциал.

Я не был бы удивлен, стало ли это более популярным в будущем.

Brian G.

12
ответ дан 8 December 2019 в 04:32
поделиться

Мм? Я сказал бы вместо этого, что WoW является нишей в экосистеме Lua... Мир Lua не вращается вокруг, Ничего себе, существует партия приложений, некоторые большие как Adobe Lightroom (для взятия не игры), с помощью Lua.

Lua является первоначально языком сценариев в начальном смысле, т.е. сделанный быть встроенным в приложение для сценариев его. Но это также разработано как расширяемый язык, таким образом, мы будем прогрессивно видеть все больше привязки различных библиотек в различных целях.

Но Вы никогда не будете получать официальное большое распределение с включенными батареями, как Python или Perl, потому что это - просто не философия авторов.
Который не предотвращает других людей для создания дистрибутивов включая партию функций из поля (для Windows, особенно, где трудно создать программное обеспечение).

Партия людей уже использует его для общих сценариев системного уровня, настольных приложений и такого так или иначе.

2
ответ дан 8 December 2019 в 04:32
поделиться

Я предполагаю, что ответ запускается с 'Его, зависит, как Вы хотите использовать его...'.

Если Вы пишете, общее бизнес-приложение (выберите данные из базы данных, отобразите данные в веб-странице или окне, сохраните данные к базе данных), Lua уже имеет то, в чем Вы нуждаетесь.

Проект Kepler содержит конфеты для веб-разработки. Проверьте их модули для наблюдения некоторых доступных библиотек - существует сеть, MVC, доступ DBMS, XML, zip, WSAPI, документы...

Как веб-приложение в качестве примера, проверьте Спутник.

Для настольного UI существует wxLua - рычаги Lua для wxWidgets.

ORM заметно отсутствует, но это не мешало людям разработать на других языках, прежде чем ORM был доступен.

Если Вы ищете специализированные библиотеки - научный, мультимедийный, безопасность - не высчитывают Lua перед проверкой LuaForge.

Когда это сводится к нему, нет ничего в дизайне Lua, который предотвращает использование общего назначения. Это просто, оказывается, является маленьким, быстро, и легким встроить..., таким образом, люди делают.

6
ответ дан 8 December 2019 в 04:32
поделиться

Существует все больше библиотек для Lua.

Если Вы - пользователь Windows, имеете взгляд на Lua для Windows. Это идет "с батареями, включенными" (wxLua, LuaCURL, LuaUnit, getopt, LuaXML, LPeg...).

Очень полезный!

2
ответ дан 8 December 2019 в 04:32
поделиться

Мне действительно нравится он как встроенный язык. Это является маленьким, очень простым в использовании, и встройте, и главным образом делает то, в чем я нуждаюсь прямо из поля. Это также достаточно подобно большинству языков, что это действительно никогда не была проблема для меня. Я также как то, как легкий это должно переопределить и добавить основные функции и ключевые слова на язык для удовлетворения безотносительно потребностей мое приложение, имею.

Я использовал его в области WoW, но я также нашел это полезным как универсальный язык сценариев для многих различных приложений, включая которые я продолжил работать, как тип триггера базы данных. Мне нравятся Ruby и Python и другое больше полнофункциональных языков сценариев, но они совсем не как удобные для встраивания в небольшие приложения, чтобы дать пользователям больше опций для настройки их сред.

1
ответ дан 8 December 2019 в 04:32
поделиться

Я думаю, что замечательная особенность Lua, что это очень легко расширяемо. Очень легко добавить интерпретатор Lua к собственной программе (например, один записанный в C, C++ или Obj-C) и со всего несколькими строками кода, можно предоставить доступ Lua к любому системному ресурсу, о котором можно думать. Например, Lua не предлагает функции, чтобы сделать xxx. Запишите один и сделайте это доступным для Lua. Но это также возможно наоборот. Запишите свое собственное расширение Lua на языке по Вашему выбору (тот, который является компилируемым), скомпилируйте его в собственную библиотеку, загрузите библиотеку в Lua, и можно использовать функцию.

Тем не менее Lua не мог бы быть лучшим выбором как автономным межплатформенным языком. Но Lua является большим языком для добавления поддержки сценариев приложению межплатформенным способом (если приложение является межплатформенным, лучше!). Я думаю, что Lua будет иметь будущее, и я думаю, что можно ожидать, что этот язык будет постоянно завоевывать популярность в конечном счете.

1
ответ дан 8 December 2019 в 04:32
поделиться

будучи удобным, поскольку язык оболочки не имеет никакого отношения к тому, чтобы быть большим языком общего назначения.

я, со своей стороны, не использую встроенный в другие приложения; я пишу свои приложения в Lua, и что-либо 'дополнительное' является библиотекой специального назначения, или в Lua или в C.

Кроме того, быть 'популярным' не так важно. в Lua-пользовательском списке периодически кто-то появляется, который говорит, что "Lua не будет популярен, если он не сделает X!", и обычный ответ также: "большой!, запишите это!", или "уже обсужденный и отклоненный".

0
ответ дан 8 December 2019 в 04:32
поделиться

Warhammer Онлайн и World of Warcraft используют его для их дополнительного языка, которому я верю.

Я думаю, что жарко! Я просто бесполезен в нем!

0
ответ дан 8 December 2019 в 04:32
поделиться
Другие вопросы по тегам:

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