小编TSe*_*our的帖子

是否有*任何*解决方案来打包使用cppyy的python应用程序?

创建 python 桌面应用程序的跨平台运行时,我不是新手。我主要使用 pyinstaller、cxfreeze、有时是 fbs、有时是公文包为我的本科生创建了各种工具。任何定期执行此操作的人都知道,在使用任意 Python 模块集合时,针对 Linux、windows 和 macos 需要进行很多怪癖和调整,但到目前为止,我已经设法弄清楚了一切。

我有一个 python GUI 应用程序,它使用一个巨大且不断变化的 c++ 库,所以我不能只是用 python 重写它。我已经成功地编写了使用 c++ 库的 python 代码,使用了名为 cppyy 的惊人(并且可能是神奇的)库,它允许您毫不费力地从 python 运行 c++ 代码。一切都在 Linux、Mac 和 Windows 上运行良好,但我无法将其打包到运行时中,而且我已经尝试了上述所有系统。所有这些都没有问题产生运行时(即,没有错误),但是当您运行它们时它们会失败。本质上,它们都给出了关于无法找到 cppyy-backend 的某种错误(例如,使用 pyinstaller 的 pyinstaller 和 fbs 在您运行二进制文件时会给出此消息):

/home/nogard/Desktop/cppyytest/target/MyApp/cppyy_backend/loader.py:113: UserWarning: No precompiled header available ([Errno 2] No such file or directory: '/home/nogard/Desktop/cppyytest/target/MyApp/cppyy_backend'); this may impact performance.
Traceback (most recent call last):
  File "main.py", line 5, in <module>
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", …
Run Code Online (Sandbox Code Playgroud)

python packaging pyinstaller cppyy

7
推荐指数
1
解决办法
421
查看次数

如何将ddply与自定义函数一起使用并返回原始数据框以及结果

从具有多个试验的任务中查看我的数据,每个试验包含5个问题(以下代码将生成代表性子集):

Subject<-c(rep(400,20),rep(401,20))
RT<-sample(x=seq(250:850),size=40)
accuracy<-c(1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 
1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0)
trial<-rep(rep(1:4, each=5),2)
question<-rep(seq(from=0,to=4),8)
data<-data.frame(Subject,trial,question,RT,accuracy)
remove(Subject,RT,accuracy,trial,question)
Run Code Online (Sandbox Code Playgroud)

并将看起来像这样:

      ID    trial  question   RT   accuracy
1     400   1      0          131  1
2     400   1      1          768  1
3     400   1      2          300  1
4     400   1      3          130  1
5     400 …
Run Code Online (Sandbox Code Playgroud)

r plyr

5
推荐指数
1
解决办法
1592
查看次数

在调用 ezANOVA 的自定义 R 函数中:如何参数化 dv?

我正在尝试在一个函数中使用 ez 包中的 ezANOVA,我希望允许使用参数指定 dv。通常,ezANOVA 将接受列变量作为符号或字符串(参见下面的“This Works”)。但是,尝试为 ezANOVA 提供一个包含符号或字符的参数不起作用(请参阅下面的“这不起作用”)。ezANOVA 抱怨'"the_dv" 不是提供的数据框中的变量'。我试过用 as.symbol()、as.formula() 等各种方法包装变量名,甚至尝试了各种方法来合并 eval() 和替换 (),但都没有运气。这是如何实现的?

如果它的原因有帮助,我有一个项目,我需要对数据集或正在分析的变量进行许多相同的复合分析(均值、方差分析、事后、图形)。我想要一个函数,这样我就可以编写一次并多次运行它。下面的代码只是一个简单的例子。

library(ez)

df<-data.frame(ID=as.factor(101:120), 
               Training=rep(c("Jedi", "Sith"), 10), 
               Wins=sample(1:50, 20), 
               Losses=sample(1:50, 20))

# ----------
# This Works
# ----------

myfunc1 <- function(the_data) {
  ezANOVA(
    data = the_data,
    wid = ID,
    dv = Wins,
    between = Training
  )
}

myfunc1(the_data = df)

# ------------------
# This Does Not Work
# -------------------

myfunc2 <- function(the_data, the_dv) {
  ezANOVA(
    data = the_data,
    wid = ID,
    dv = the_dv,
    between …
Run Code Online (Sandbox Code Playgroud)

r

2
推荐指数
1
解决办法
694
查看次数

如何将不同的调色板分配给 Seaborn 条形图中的色调级别?

我正在使用 Seaborn 在 Python 中创建条形图。我有一个 2(注意力:分散 vs 集中)X 3(解决方案:1,2,3)设计。对于分割,我希望条形颜色为深红色、深绿色、深蓝色。为了集中注意力,我希望条形颜色为红色、绿色、蓝色。

此代码不起作用,因为调色板仅适用于hue参数:

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset('attention')

palette = ["darkred", "red", "darkgreen", "green", "darkblue", "blue"]
palette = ["darkred", "darkgreen", "darkblue", "red", "green", "blue"]

sns.set(style='ticks', context='notebook', font_scale=1.2)
fig, ax = plt.subplots(figsize=(7, 5), dpi=96)
my_plot = sns.barplot(x="solutions", y="score", hue="attention",
                      palette=palette, capsize=.1, ax=ax, data=data)

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这段代码几乎可以工作:

import seaborn as sns
import matplotlib.pyplot as plt

data = sns.load_dataset('attention')

sns.set(style='ticks', context='notebook', font_scale=1.5)
fig, ax = plt.subplots(figsize=(7, 5), …
Run Code Online (Sandbox Code Playgroud)

python matplotlib seaborn

1
推荐指数
1
解决办法
2559
查看次数

标签 统计

python ×2

r ×2

cppyy ×1

matplotlib ×1

packaging ×1

plyr ×1

pyinstaller ×1

seaborn ×1