Правильный способ сделать это - использовать многоиндексный, а не кортежный индекс:
import itertools
import pandas as pd
combos = list(itertools.permutations(['BB', 'BW', 'WW'], 2))
multi = pd.MultiIndex.from_tuples(combos)
combo_values = pd.Series([2,4,0,2,0,0], multi)
combo_values
теперь выглядит так:
BB BW 0.25
WW 0.50
BW BB 0.00
WW 0.25
WW BB 0.00
BW 0.00
dtype: float64
И это может быть отфильтровано так:
combo_values['BB',]
Чтобы получить
BW 0.25
WW 0.50
Если мне нужны дополнительные библиотеки для программирования на c, где их найти? Есть ли хорошо организованный веб-сайт библиотек c?
Мне ничего не известно за пределами CCAN.
Проблема в том, что в C нет даже свободной спецификации для библиотек. Сравните это, например, с пакеты на Java, Python или Perl.
И даже в этом случае C сам по себе является довольно простым языком, оставляя многие вещи для реализации самими библиотеками. Абстракция ввода-вывода, управление памятью, многопоточность, интеграция с ОС - незначительные различия в том, как библиотеки работают с любыми ресурсами, могут сделать их несовместимыми, не позволяя использовать их в одном проекте.
Я видел в прошлом некоторые сторонние коммерческие библиотеки для C, охватывающие довольно много функций, но, честно говоря, я не могу их рекомендовать и, честно говоря, даже не помню их имен - поскольку они часто вызывали больше проблем, чем реально помогали . (Хорошо, я вру: они редко вызывали неразрешимые проблемы: это многочисленные обходные пути, которые часто вызывали проблемы позже.)
В противном случае, для C вам может понадобиться чтобы проверить Glib и (не поймите меня неправильно) также проверить стандарт C, поскольку, по моему опыту, немногие на самом деле знают многие из утилит, уже имеющихся в самой стандартной библиотеке. И что ж, Google - ваш друг: есть много общедоступного кода, который вы можете просто добавить в свой проект как есть.
Существует диспетчер пакетов C, который выглядит многообещающим названный CLib:
GitHub: https://учебное руководство по github.com/clibs/clib
: https://dev.to/noah11012/clibs-a-package-manager-for-c-4jmi
Я не знаю никого, кто бы изучал это подробно, хотя мне было бы любопытно посмотреть исследования. Я уверен, что это связано с природой самого сообщества программистов C.
Я думаю, что большая (может быть, основная?) Часть ответа такова: до появления WWW не существовало единого ресурса для получения библиотек для определенного языка. Люди получали свои библиотеки и знания о библиотеках разными способами: через BBS, списки рассылки, группы новостей и периодические издания. Сообщество C, конечно, возникло с этого времени, и я заметил аналогичную разницу в культуре по отношению к другим языкам того периода и ранее.
Я думаю, что другая часть ответа связана с общей децентрализацией самой C-культуры. Нет ни одного компилятора C, ни одного сообщества разработчиков C, которое служило бы центром и потенциальной точкой для проектов, к которой можно было бы присоединиться. Сообщество разработчиков C огромное , что еще больше способствует децентрализации и расколу.
В случае библиотек C дистрибутивы ОС действительно неплохо справляются со сбором полезных библиотек C / C ++. (Я полагаю, за исключением Windows.) Они лучше справляются с этими языками, чем с большинством других, вероятно, потому, что C и C ++ являются такими важными системными языками на этих платформах.
Что касается CCAN, я думаю, что, учитывая количество различных распространителей кода C, было бы более целесообразным проект, если бы он имел один сайт, который ссылается на различные библиотеки на их собственных сайтах, а не чем пытаться заставить их загрузить прямо в CCAN. Я думаю, что это есть применение в Google и отдельно от него, который создаст много шума, если вы попытаетесь просто просмотреть библиотеки. Вопрос в том, приняли бы вы и большинство сообществ Си такой сайт, если бы он существовал?
Возможно, вас позабавит, как появился CPAN: http://www.brainbell.com /tutors/Perl/CPAN_History.htm
CPAN развивался точно так же, как и его сообщество. То же самое может произойти в мире C / C ++ при наличии лидерства и интереса. Но этого еще не произошло.
Зачем вам нужен веб-сайт с коллекцией библиотек C? Просто используйте Google.
используйте http://www.google.com/codesearch?q=lang:%22C%22 вариант http://www.google. com / codesearch
=> т.е. добавить lang: "C"
в поисковый запрос