我刚从PyQt4转到5,我遇到了QtGui的问题.我使用32位Windows安装程序安装,而不是我自己的构建.
当我做:
from PyQt5 import QtGui
Run Code Online (Sandbox Code Playgroud)
我明白了
class MainWindow(QtGui.QMainWindow, UI.MainUI.Ui_MainWindow):
AttributeError: 'module' object has no attribute 'QMainWindow'
Run Code Online (Sandbox Code Playgroud)
所以我试过了
from PyQt5.QtWidgets import QtGui
Run Code Online (Sandbox Code Playgroud)
结果如下:
ImportError: cannot import name QtGui
Run Code Online (Sandbox Code Playgroud)
然后我尝试根据Pyinstaller更改sys.path :ImportError:无法导入名称QtGui工作但它仍然给我相同
ImportError: cannot import name QtGui
Run Code Online (Sandbox Code Playgroud)
更新:看起来我确实导入了QtGui,因为当我进入IDLE并尝试它时,它仍然自动完成QMovie和一大堆其他属性.有什么理由QMainWindow不会在那里吗?(事实并非如此,QDialog也不重要)
我有一本字典:
d = {1: ["Spices", math.floor(random.gauss(40, 5))],
2: ["Other stuff", math.floor(random.gauss(20, 5))],
3: ["Tea", math.floor(random.gauss(50, 5))],
10: ["Contraband", math.floor(random.gauss(1000, 5))],
5: ["Fruit", math.floor(random.gauss(10, 5))],
6: ["Textiles", math.floor(random.gauss(40, 5))]
}
Run Code Online (Sandbox Code Playgroud)
我想将它打印出来,以便与标题很好地对齐.我可以将标题添加到字典中并始终确保它们排在最前面吗?我已经看到了几种垂直方式,但是我希望它的最大列宽接近max str()或int().
例:
Key_ _ __ _ __ _ Label _ __ _ __ _ ___ Number
1 _ __ _ __ _ ___ 香料_ __ _ _ _ _ _ _ 42
2 _ _ _ _ _ _ _ ___ 其他东西_ ____ _16
等
显然我甚至不能手动在这个编辑器里面做这个,但我希望这个想法能够实现.我也不是真的想要__.只是一个占位符.
谢谢大家.
我正在尝试从 SQL 读取一个小表,并且正在考虑从 pyodbc 切换到 SQLAlchemy 以便能够使用 pd.to_sql()
当我比较两者时,sql alchemy 慢得多。
s_py = """\
import pandas as pd
import pyodbc
cxn = pyodbc.connect('DRIVER={SQL SERVER};SERVER=.\;DATABASE=PPIS;UID=sa;PWD=pwd')
"""
s_alch = """\
import pandas as pd
import sqlalchemy
cxn = sqlalchemy.create_engine("mssql+pyodbc://sa:pwd@./PPIS?driver=SQL+Server")
"""
timeit.timeit('pd.read_sql("SELECT * FROM Operators", cxn)',setup=s_py, number=100)
Run Code Online (Sandbox Code Playgroud)
输出[21]:0.18496091418973037
timeit.timeit('pd.read_sql("SELECT * FROM Operators", cxn)',setup=s_alch, number=100)
Run Code Online (Sandbox Code Playgroud)
输出[23]:4.407356934717654
我见过这个谈论插入行。但为什么读取速度会慢很多呢?
我想知道我是否可以从 GLMNet 获得 AIC 和 BIC。我发现 glmnet.cr 似乎能够做到,但我的反应是时间,而不是顺序。我可以根据可能性自己计算它,但 glmnet 也不会返回。
切线:我真的可以返回 l1norm 吗?我觉得它应该只是
fit$norm
Run Code Online (Sandbox Code Playgroud)
但似乎不是。(我知道它说不要把数字拉出来,但我实际上没有使用 R)
在此先感谢您的帮助。
R 已经 3 天了,不知道我做错了什么。我正在尝试将一些具有两种方式交互的列发送到 glmnet cox 模型中。我有一些名为 dtable 的 data.frame()
编辑以使代码可重现
xs<-c("Col1", "Col2", "Col3")
v<-c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, NA, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, NA, 25, 26, 27, 28, 29, 30)
df<-data.frame(matrix(v,ncol=3))
dm<-as.matrix(df)
dm<-matrix(dm[complete.cases(dm)], ncol=3)
colnames(dm)<-xs
dfdata<-data.frame(dm)
f<-as.formula(time~.*.)
xmatrix<-model.matrix(f, dfdata)[,-1]
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我收到错误
Error in model.frame.default(object, data, xlev = xlev) :
object is not a matrix
Run Code Online (Sandbox Code Playgroud)
提前致谢
只是想知道是否可以在同一个函数中使用可选参数作为多个参数.我环顾四周,觉得好像我的词汇错了或什么的.例:
def pprint(x, sub = False, *Headers):
pass
Run Code Online (Sandbox Code Playgroud)
我是否可以使用多个标题来调用它而不必总是放入True或False放入sub?我觉得这不是因为Headers不知道它从何处开始.我想明确声明,sub = True否则它默认为False.
我总是厌倦在任何语言中使用eval,但我想不出更好的方法来做两件事.从我读过的所有内容来看,evIl(这很糟糕).任何想法都表示赞赏.我有一个带字典的模块,可以调用函数或设置属性,具体取决于你从另一个模块调用它的方式
module Config
some_dict = {1: ["desc 1", "callfunction1()"],
2: ["desc2", "setattr(object, "attribute", "the fun things"]}
Run Code Online (Sandbox Code Playgroud)
等等
module other
try:
i = int(input())
eval(Config.some_dict[i][1])
except ValueError:
print("nope")
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有更安全的方法来做到这一点.
此外,如果我在程序运行时尝试调试:
try:
eval(input())
except:
pass
Run Code Online (Sandbox Code Playgroud)
这是可接受的还是pythonic还是有更好的方法?我是python的新手(我主要运行JSL所以一切都是用eval(parse())完成的.
python ×5
python-3.x ×3
glmnet ×2
r ×2
dictionary ×1
model.matrix ×1
pandas ×1
pyodbc ×1
pyqt ×1
pyqt5 ×1
python-3.3 ×1
sqlalchemy ×1
statistics ×1