我正在使用 matplotlib 将一千个绘图写入 PDF。我已经优化了绘图代码,即。重用图形/轴/线并仅更改 y 数据。
剩余的大部分时间都花在了 save_figure 上。
相比之下,R 似乎将绘图输出到 PDF 的速度快了大约 2 倍。所有零数据的绘图在 R 中似乎更快,而在 Python 中速度相同。
我设置了 pdf.compression = 0,这做了一个小小的改进。
尝试光栅化数据,它对绘图速度没有影响(尽管它使用了大量的 RAM)。
还有什么我可以尝试用 PDF 后端加速 matplotlib 的速度,或者我应该考虑任何替代后端吗?我正在努力打败R。
谢谢!
我有一个像这样的数据帧:
ind col1 col2
1 12 string1 ...
2 23 string2 ...
3 34 string1 ...
4 13 string2 ...
5 17 string3 ...
... ... ... ...
Run Code Online (Sandbox Code Playgroud)
我想折叠 DataFrame 以便 col2 是唯一的。在 col1(以及所有其他数字列)中,我想放置 col2 相等的所有值的中位数。
我知道我可以提取 df[df["col2"] == "stringN"],计算中位数并构建一个新的 DataFrame,但是有没有更优雅/pythonic 的方法来做到这一点?
据我了解,
'hello {0}'.format("world")
Run Code Online (Sandbox Code Playgroud)
慢于:
"hello %s" % "world"
Run Code Online (Sandbox Code Playgroud)
我的问题是,当传递时,logger如何格式化字符串:
logger.debug("hello %s", "world")
Run Code Online (Sandbox Code Playgroud)
并且假设日志永远不会被关闭,那么最好这样做:
logger.debug("hello %s" % "world")
Run Code Online (Sandbox Code Playgroud) 在我的表架构中:
... disabled BOOLEAN, ...
Run Code Online (Sandbox Code Playgroud)
连接到db时:
db = sqlite3.connect(f, detect_types=sqlite3.PARSE_DECLTYPES)
sqlite3.register_converter("BOOLEAN", myfunc)
Run Code Online (Sandbox Code Playgroud)
我插入一条记录如下:
INSERT INTO mytable (disabled, ...) VALUES (:disabled, ...)
Run Code Online (Sandbox Code Playgroud)
与包含disabled的参数dict一起使用:False.
当我读回该记录时,调用myfunc来转换BOOLEAN类型:
def myfunc(x):
print x, type(x)
Run Code Online (Sandbox Code Playgroud)
结果:( 0, <type 'str'> 当我想要假时,当然评估为True)
我希望bool存储为1字节INTEGER,我只是想在读取记录时将它们转换为Python bool(代码的其他部分期望bool不是int).SQLite是否将它们存储为字符串,或者在调用myfunc之前将它们转换为字符串?为什么?
PS - 我试过用sqlite3.register_adapter(bool, int),但无济于事.