多特蒙德大学物理实验室课程的小工具箱。
praktip的Python项目详细描述
实践
Praktipy最初是为多特蒙德物理实验室课程设计的一个小工具箱。
它包含用于从文本文件生成乳胶表的工具 以及生成拟合曲线图的函数。 这些python文件将使您在处理可读文件时更轻松 多特蒙德Physik Praktikum的桌子(希望如此)。
目录
先决条件
- python
>;=3.6
带pip(其他版本未测试) - 一些python 3包,将由安装脚本安装
- 乳胶
安装
# Via pip (preferred) $ pip install praktipy # or manually $ git clone https://github.com/The-Ludwig/praktipy.git $ python3 setup.py install
"但我不想安装整个程序"
如果您不想在计算机上安装整个软件包,可以直接下载相关文件:
- 表格处理: praktipy/tablehandler.py。只需将文件放入当前使用的目录,并使用"import tablehandler as th"导入它即可
- 绘图:以类似的方式使用praktiplot.py。
处理表格
如果已安装模块,请使用
importpraktipy.tablehandlerasth
如果您刚刚下载了文件
importtablehandlerasth
用文本文件生成表格
praktipy使用二维标准python列表来表示其列表。 它能把它们产生出来人类可读的文本文件(来自TXT的th.gen_)。这看起来与numpy.genfromtxt非常相似,但是尽管它的效率要低得多,但它的功能要强大得多。 我不建议它解析非常大的文件(使用numpy.genfromtxt),但是每个人类可读的表都应该是好的。(有关详细信息,请参见基准笔记本)
为什么来自TXT的Gen_是有用的:
- 表中可以有"无"值。(孔)
- 您可以在您的表中包含ufloats。(写为"42.14+-6.5")
- 您的表中可以有字符串。
- 你可以把桌子写得很形象。(gen_from_txt(filename,explicit_none=false))
- 可以显式地编写表。(gen_from_txt(filename,explicit_none=true))
table=th.gen_from_txt("./path/to/table")# Look what the parser has parsedprint(table)
源代码docstrings和/examples目录中的详细信息。
生成tex表
一旦你有了一个二维python列表(实际上它可以是任何二维iterable),你就可以很容易地用它制作一个漂亮的.tex表。
为什么gen_tex_table是有用的:
- 您可以直接输入生成的文件。
- 您可以自动将表拆分为子表。
- 您可以设置乳胶标签和标题。
- 您可以设置每列或全局的精度。
# It is that quick.th.gen_tex_table(table,"/path/to/output/tex/file",tex_caption="Put your laTeX caption here",tex_label="Put your laTex label here",subtables=2,precision=["2.3",3,"1.9"],midrule=2)
源代码docstrings和示例目录中的更多详细信息。
操作表格
您可以使用所有已知的python列表函数来操作表。上面提供了一些使您的生活更轻松的功能。
- 转换表:第四个转置(表)
- 从表中获取数据(数字):th.原始数据(表)
- 等(在模块中查看更多信息,例如dir(th))
使用matplotlib
praktipy将尝试设置matplotlib后端,以便能够打印漂亮的(德语数字格式和漂亮的数学字体)绘图。如果您想自己设置matplotlib,只需在从praktipy导入任何内容之前进行设置。
默认情况下,praktipy将尝试使用更快的乳胶设置,因此您的python脚本不会花费太长时间来完成。如果您缩进以生成漂亮的绘图,并且有一点时间,则可以使用此功能
pplot.pretty()
如果您不想再回到快速版本:
pplot.fast()
重要提示:praktipy会将其设置为默认样式文件。如果您有一个现有的matplotlibrc
文件,请确保将它们合并在一起。除了乳胶支持之外,还必须设置axes.formatter.use_locale:true
,以便使用基于系统区域设置的十进制分隔符(例如,
,而不是德语的)
Praktipy还提供了一些方便的功能, 例如,在拟合函数的上下页生成良好的数据点。
通配符导入
一般来说,您应该只导入python中需要的内容。但不是没有它是相当方便的,只要导入你需要的一切,并看到一些代码完成的东西,你通常需要的实习。 praktipy提供了通配符导入:
frompraktipyimport*
这将为你带来实习所需的一切。
文档
当前的代码没有很好的文档化(尽管tablehandler.py本身提供了很好的docstring)。 您可以在示例目录中找到一些示例。
旧版本
如果你已经用praktipy的旧版本(2.0之前)编写一些代码,它非常 很可能这对新版本不起作用。
我把praktipy的整个代码风格改得更像pythonic。
但不要害怕!有一个简单的技巧可以在新版本中访问旧版本的praktipy fro。每当你用praktipy写了一些东西,比如
frompraktipyimport*
用praktipy.legacy替换praktipy
# Via pip (preferred) $ pip install praktipy # or manually $ git clone https://github.com/The-Ludwig/praktipy.git $ python3 setup.py install0
您的代码将正常工作。
谢谢
非常感谢pep et al.为他们提供的工具箱工作坊和材料。我基本上偷了他们的matplotlib-tex头!