小编And*_*bis的帖子

在 PyQtGraph 中绘制大型时间序列时使用预下采样数据

我需要在 PyQtGraph 中绘制一个大的时间序列(数百万个点)。按原样绘制它实际上是不可能的,并且当打开优化选项(使用下采样setDownsampling和使用裁剪setClipToView)时,缩小时它仍然几乎不可用(只有在放大时,由于裁剪,它才会变得很快)。

不过我有一个想法。我可以对数据进行预下采样,因为它们是静态的。然后,我可以在缩小时使用缓存的下采样数据,在放大时使用原始数据。

我怎样才能做到这一点?

python plot pyqtgraph

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

Python 2 和 Python 3 中 sys.path 中的导入顺序和路径

我有一个关于sys.pathPython 2 和 Python 3默认放置的导入顺序和路径的问题。我将sys.pathPython 2.7 和 3.4 中的默认路径PYTHONPATH设置为空。我在 Ubuntu 14.10 上。

我还通过 /usr/lib(版本 1.8.2)中的 apt-get 和本地/home/user/.local/lib(版本 1.9.2)为 Python 2 和 Python 3安装了 numpy 。

我得到以下结果:

蟒蛇 2.7

>>> print('\n'.join(sys.path))

/usr/lib/python2.7
/usr/lib/python2.7/plat-x86_64-linux-gnu
/usr/lib/python2.7/lib-dynload
/home/user/.local/lib/python2.7/site-packages
/usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages
/usr/lib/pymodules/python2.7

>>> import numpy
>>> numpy.version 
<module 'numpy.version' from  /home/user/.local/lib/python2.7/site-packages/numpy/version.pyc'>
>>> numpy.version.version
'1.9.2'
Run Code Online (Sandbox Code Playgroud)

蟒蛇 3.4

>>> print('\n'.join(sys.path))

/usr/lib/python3/dist-packages
/usr/lib/python3.4
/usr/lib/python3.4/plat-x86_64-linux-gnu
/usr/lib/python3.4/lib-dynload
/home/user/.local/lib/python3.4/site-packages
/usr/local/lib/python3.4/dist-packages

>>> import numpy
>>> numpy.version 
<module 'numpy.version' from '/usr/lib/python3/dist-packages/numpy/version.py'>
>>> numpy.version.version
'1.8.2'
Run Code Online (Sandbox Code Playgroud)

您能帮我理解为什么在 …

python ubuntu python-2.7 python-3.4

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

用另一个包含越界值的数组索引一个 numpy 数组

给定以下数据数组:

d=np.array([10,11,12,13,14]) 
Run Code Online (Sandbox Code Playgroud)

和另一个索引数组:

i=np.array([0, 2, 3, 6])
Run Code Online (Sandbox Code Playgroud)

d使用i( d[i])进行索引的好方法是什么6,这样我会得到:

np.array([10, 12, 13])
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

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

使用QObject从Python线程发出信号

我想知道与QThread相比,从QObject中的常规python线程发出信号会产生什么后果.

请参阅以下课程:

class MyObject(QtCore.QObject):

    def __init__(self):
        super().__init__()

    sig = pyqtSignal()

    def start(self):
        self._thread = Thread(target=self.run)
        self._thread.start()

    def run(self):
        self.sig.emit()
        # Do something
Run Code Online (Sandbox Code Playgroud)

现在,假设在GUI线程中,我有:

def __init__(self):
    self.obj = MyObject()
    self.obj.sig.connect(self.slot)
    self.obj.start()

def slot(self):
    # Do something
Run Code Online (Sandbox Code Playgroud)

slot当所述信号被发射确实执行.但是,我想知道该slot方法将在哪个线程中执行?如果我使用QThread而不是python线程,它会有什么不同MyObject吗?

我正在使用PyQt5和Python 3.

python multithreading pyqt signals-slots pyqt5

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

当通过 PyQt 信号/槽连接传递时,对象被复制的频率是多少?

这篇有趣的文章评估了在 Qt 中通过信号/槽连接传递对象时复制对象的频率。基本上,结果是,当在 C++ 中通过 const 引用传递时,对象要么根本不被复制(对于直接连接),要么被复制一次(对于排队连接)。

PyQt 怎么样?这同样成立吗?对于Python对象,当进行复制时,是否是深复制?

我主要对 PyQt5 和 Python 3 感兴趣。

python pyqt signals-slots pyqt5

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

在Emacs Lisp中@字符的作用是什么?

例如,在此宏定义中使用:

(defmacro with-eval-after-load-feature (feature &rest body)
  (declare (indent 1) (debug t))
  (let* ((feature (if (and (listp feature) (eq (car-safe feature) 'quote))
                      (cdr feature) feature))
         (fs (if (listp feature) feature (list feature)))
         (form (or (and (eval '(eval-when (compile)
                                 (with-eval-after-load-feature-preload fs)))
                        'with-no-warnings)
                   'progn)))
    `(,form ,@(with-eval-after-load-feature-transform fs body))))
Run Code Online (Sandbox Code Playgroud)

这个文件中.

emacs elisp

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

在Emacs Lisp中分配给自由变量有什么危险?

(setq foo 1)foo使用变量定义的情况下添加代码defvar将导致Emacs字节编译器生成以下警告:

assignment to free variable `foo'
Run Code Online (Sandbox Code Playgroud)

在没有事先定义的情况下分配给这样的自由变量有什么危险?

emacs elisp

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

PyQt,Python 3:Lambda 槽将信号参数分配给变量?

假设以下 PyQt 信号:

value_changed = pyqtSignal(value)
Run Code Online (Sandbox Code Playgroud)

有没有办法编写一个 lambda 槽,将信号提供的值分配给某个变量,如这个(显然是非法的)示例所示:

object1.value_changed.connect(lambda val: var1=val) 
object2.value_changed.connect(lambda val: var2=val) 
...
Run Code Online (Sandbox Code Playgroud)

实现这种行为的最简洁的方法是什么?我基本上想避免为每个这样的分配定义一个函数。

python pyqt python-3.x

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

如何根据列值将CSV文件拆分为多个文件

我有CSV文件,看起来像这样:

name1;1;11880
name2;1;260.483
name3;1;3355.82
name4;1;4179.48
name1;2;10740.4
name2;2;1868.69
name3;2;341.375
name4;2;4783.9
Run Code Online (Sandbox Code Playgroud)

可能会有更多或更少的行,我需要将其拆分为多个.dat文件,每个文件包含与此文件的第二列具有相同值的行.(然后我将为每个.dat文件制作条形图)对于这种情况,它应该是两个文件:

data1.dat 
name1;1;11880
name2;1;260.483
name3;1;3355.82
name4;1;4179.48

data2.dat
name1;2;10740.4
name2;2;1868.69
name3;2;341.375
name4;2;4783.9
Run Code Online (Sandbox Code Playgroud)

用bash做这件事有什么简单的方法吗?

csv bash awk

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

将2D Numpy数组转换为一维列的列表

将2D numpy数组转换为1D列列表的最佳方法是什么?

例如,对于数组:

array([[ 0,  5, 10],
       [ 1,  6, 11],
       [ 2,  7, 12],
       [ 3,  8, 13],
       [ 4,  9, 14]])
Run Code Online (Sandbox Code Playgroud)

我想得到:

[array([0, 1, 2, 3, 4]), array([5, 6, 7, 8, 9]), array([10, 11, 12, 13, 14])]
Run Code Online (Sandbox Code Playgroud)

这有效:

[a[:, i] for i in range(a.shape[1])]
Run Code Online (Sandbox Code Playgroud)

但是我想知道使用纯Numpy函数是否有更好的解决方案?

python numpy

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

是否可以在 TensorFlow 中重新输入现有的名称范围?

两次输入同名的名称范围:

c = tf.constant(1)
with tf.name_scope("test"):
    a = tf.add(c, c)
with tf.name_scope("test"):
    b = tf.add(a, a)
Run Code Online (Sandbox Code Playgroud)

导致创建两个名称范围:testtest_1.

是否可以在单独的上下文管理器中重新输入范围而不是创建新的范围?

python tensorflow

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