import pandas as pd
df = pd.DataFrame({'a' : [1,2,3]})
df.to_hdf('temp.h5', key='df', mode='w')
Run Code Online (Sandbox Code Playgroud)
这给了我错误。
缺少可选的依赖“表”。使用 pip 或 conda 安装表。
我已经尝试过 ImportError HDFStore requires PyTables No module named tables。还是一样的错误。
读取 hdf 文件时出现相同的错误。并且tables已经为我的python安装了。
一些版本信息。
- 蟒蛇 3.7.4
- 熊猫 0.25.2
- 视窗10
PS:您可以在repl https://repl.it/ 中重现此内容。
更新:
import tables
Run Code Online (Sandbox Code Playgroud)
并收到此错误:
导入错误:无法加载任何 ['hdf5.dll'、'hdf5dll.dll'],请确保它可以在系统路径中找到。
看起来熊猫没有为此提供准确的信息。它只是在实际存在时说缺少依赖项。
如果有人知道如何解决这个问题。那会有所帮助。
我正在尝试将Qt用作matplotlib后端。我已经在kaggle和google colab上进行了检查,但是问题是相同的。
当我写
%matplotlib qt5
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
ImportError: Cannot load backend 'Qt5Agg' which requires the 'qt5' interactive framework, as 'headless' is currently running
Run Code Online (Sandbox Code Playgroud)
当我打印默认后端时,它已经是Qt5Agg
import matplotlib
print(matplotlib.get_backend())
Run Code Online (Sandbox Code Playgroud) 当我在numpy中创建一维数组并使用一个字符串(包含数字)来索引它时,我得到了一个错误:
>>> import numpy as np
>>> a = np.arange(15)
>>> a['10']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: field named 10 not found.
Run Code Online (Sandbox Code Playgroud)
但是,当我创建一个二维数组并使用两个字符串进行索引时,它不会给出错误并返回该元素,就像首先将字符串转换为整数一样
>>> b = np.arange(15).reshape(3,5)
>>> b
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
>>> b[1, 2]
7
>>> b['1', '2']
7
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?为什么我在二维情况下没有出错?
使用缩放线示例我制作了一个Python QChartView类,可以使用箭头键滚动并使用加号和减号键进行缩放.(见下面的代码).
当我向左滚动时,我希望网格线和轴刻度滚动与数据相同的量.但是,只有数据(QLineSeries)向左滚动.5个网格线保持在相同的位置,但它们的刻度值会更新.这是不合需要的,因为新的刻度值可以是任何值.
我查看了文档但无法找到如何使网格与数据一起滚动.我错过了什么吗?
我还希望能够将滴答声设置为显式值(这样我自己也可以实现滚动行为).是否可以将轴刻度值设置为特定值?
我的示例代码:
import sys
from math import pi, sin, sqrt
from PyQt5.QtChart import QLineSeries, QChart, QChartView
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication
class ZoomPanChartView(QChartView):
""" QChartView that can zoom/pan with the keys
"""
def __init__(self, chart):
super().__init__(chart)
self.zoomFactor = sqrt(2) # QCharts default is 2
self.panPixels = 10
def keyPressEvent(self, keyEvent):
""" Panning (scrolling) is done with the arrow keys.
Zooming goes with the plus and minus keys.
The '=' key …Run Code Online (Sandbox Code Playgroud) 我有一个带有a的GUI,QDockwidget我希望如果用户用鼠标光标悬停在它上面,则停靠窗口小部件标题栏的颜色会改变颜色.我在下面有一个小测试程序,当光标位于标题栏上方时,标题栏会改变颜色.但是,如果光标位于停靠窗口小部件的其余部分上方,它也会更改颜色.有没有什么办法解决这一问题?
CSS = """
QDockWidget::title {
background-color: lightblue;
border: 1px solid black;
}
QDockWidget::title:hover {
background: yellow;
}
QMainWindow::separator {
background: palette(Midlight);
}
QMainWindow::separator:hover {
background: palette(Mid);
}
"""
from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt, QSize
class CenteredLabel(QtWidgets.QWidget):
def __init__(self, text, parent=None):
super().__init__(parent=parent)
self.verLayout = QtWidgets.QVBoxLayout()
self.setLayout(self.verLayout)
self.horLayout = QtWidgets.QHBoxLayout()
self.verLayout.addLayout(self.horLayout)
self.label = QtWidgets.QLabel(text)
self.horLayout.addWidget(self.label)
def sizeHint(self):
return QSize(300, 400)
class MyWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super().__init__(parent=parent)
self.setCentralWidget(CenteredLabel("Central Widget"))
self.dockWidget = QtWidgets.QDockWidget("Dock Title", parent=self)
self.dockWidget.setWidget(CenteredLabel("Dock Widget"))
self.addDockWidget(Qt.LeftDockWidgetArea, …Run Code Online (Sandbox Code Playgroud) 我有一个简单的交互式情节。当我点击放大镜按钮时,我可以绘制一个矩形来进行交互式缩放。您可以在下图中看到虚线矩形。
但是,当我在深色背景上使用白色网格(带有plt.style.use('dark_background'))时,缩放矩形几乎不可见。它仍然存在,但在一个主要是黑色的情节上是黑色的。
为完整起见,使用 Matplotlib 3.1.3 生成的图如下:
import matplotlib.pyplot as plt
import numpy as np
plt.style.use('dark_background')
fig = plt.figure()
ax = fig.add_subplot(111)
data = 2.5 * np.random.randn(400) + 3
ax.plot(data)
plt.show()
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如何更改缩放矩形的颜色?
你好关于重塑数组的问题。
我有一个数组 train_x (2D),其内容是 (103,784)
在这种情况下,103 是示例的数量。
784是我的神经网络的输入。
现在我想从 2D 重塑为 4D
我使用以下命令:
train_x = np.reshape(train_x, (103, 28, 28, 1))
Run Code Online (Sandbox Code Playgroud)
在这种情况下,103 仍然是训练样本的数量,并且在这种情况下,我的输入 784 被分成 28x28 的矩阵,这是否正确?在这种情况下,1 是我的通道,不使用 RGB(否则通道应为 3)。
如果我的假设不正确,请有人建议如何将 2D 重塑为 4D 以存档上述内容?tnx
在PySide信号和插槽页面上,它说:"信号是实例拥有的运行时对象,它们不是类属性".显然,QObject构造函数在Signals的类属性中查找并将它们复制到对象实例.我的测试程序证实了这一点.
来自PySide导入QtCore
class Klass(QtCore.QObject):
lst = []
sig = QtCore.Signal(str)
def main():
obj1 = Klass()
obj2 = Klass()
print "id: obj1.lst = {}, obj1.sig = {}".format(id(obj1.lst), id(obj1.sig))
print "id: obj2.lst = {}, obj2.sig = {}".format(id(obj2.lst), id(obj2.sig))
print "id: klass.lst = {}, klass.sig = {}".format(id(Klass.lst), id(Klass.sig))
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
在我的输出中,您可以看到现在有三个信号对象,而lst-member的id对于对象和类都是相同的.
id: obj1.lst = 4317739344, obj1.sig = 4297560376
id: obj2.lst = 4317739344, obj2.sig = 4297560400
id: klass.lst = 4317739344, klass.sig = 4317851072
Run Code Online (Sandbox Code Playgroud)
隐式创建对象属性只是令人困惑,因此风格很差(恕我直言).也许他们确实有充分的理由,但我没有看到他们.所以我的问题是:为什么他们选择这个解决方案而不是仅仅在构造函数中创建信号作为常规属性?