小编til*_*ten的帖子

在matplotlib中定义色彩映射的中点

我想设置一个色图的中间点,即我的数据从-5到10,我想零为中间.我认为这样做的方法是继承normalize和使用规范,但我没有找到任何例子,我不清楚,我究竟要实现什么.

python matplotlib

75
推荐指数
8
解决办法
3万
查看次数

理解numpy中奇怪的布尔2d数组索引行为

为什么这样做:

a=np.random.rand(10,20)
x_range=np.arange(10)
y_range=np.arange(20)

a_tmp=a[x_range<5,:]
b=a_tmp[:,np.in1d(y_range,[3,4,8])]
Run Code Online (Sandbox Code Playgroud)

这不是:

a=np.random.rand(10,20)
x_range=np.arange(10)
y_range=np.arange(20)    

b=a[x_range<5,np.in1d(y_range,[3,4,8])]
Run Code Online (Sandbox Code Playgroud)

python numpy

17
推荐指数
2
解决办法
7298
查看次数

有效地总结一个小的numpy数组,广播在一个巨大的numpy数组?

我想计算一个大的(1,000,000 x 3,000)布尔numpy数组的索引权重和.大型布尔数组不经常更改,但权重来自查询时,我需要非常快速地回答,而不需要复制整个大型数组,或者将小权重数组扩展到大型数组的大小.

结果应该是一个包含1,000,000个条目的数组,每个条目都具有与该行的True值对应的权重数组条目的总和.

我研究了使用蒙面数组,但它们似乎需要构建一个与我的大型布尔数组大小相当的权重数组.

下面的代码给出了正确的结果,但在乘法步骤中我买不起该副本.乘法甚至不是必需的,因为values数组是布尔值,但至少它正确处理广播.

我是新手,喜欢它,但我会为这个特殊问题放弃它.我已经学会了足够多的知识,以远离任何循环python.

我的下一步是在C中编写这个例程(顺便说一句,这有一个额外的好处,就是让我通过使用位而不是字节来节省内存.)

除非你们中的一个笨拙的大师能把我从cython中救出来吗?

from numpy import array, multiply, sum

# Construct an example values array, alternating True and False.
# This represents four records of three attributes each:
#    array([[False,  True, False],
#           [ True, False,  True],
#           [False,  True, False],
#           [ True, False,  True]], dtype=bool)
values = array([(x % 2) for x in range(12)], dtype=bool).reshape((4,3))

# Construct example weights, one for each attribute:
#    array([1, 2, 3])
weights = array(range(1, 4))

# …
Run Code Online (Sandbox Code Playgroud)

python numpy matrix

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

PyQt 4 UI冻结

以下程序应该只计数和int并在标签中显示其值.但过了一会儿,GUI停止工作,而循环继续.

from PyQt4 import QtGui,QtCore
import sys

class main_window(QtGui.QWidget):
    def __init__(self,parent=None):
        #Layout       
        QtGui.QWidget.__init__(self,parent)
        self.bt=QtGui.QPushButton('crash')
        self.lbl=QtGui.QLabel('count')
        ver=QtGui.QHBoxLayout(self)
        ver.addWidget(self.bt)
        ver.addWidget(self.lbl)
        self.cnt=0
        self.running=False
        self.connect(self.bt,QtCore.SIGNAL("clicked()"),self.count)

    def count(self):
        self.running=True
        while self.running:
            self.cnt+=1
            print self.cnt
            self.lbl.setText(str(self.cnt))
            self.repaint()

if __name__ == '__main__':

    app = QtGui.QApplication(sys.argv)
    mw=main_window()
    mw.show()
    sys.exit(app.exec_())   
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

python qt pyqt pyqt4

3
推荐指数
2
解决办法
5943
查看次数

表达众多点积的更好方法是什么?

是否有更好,更快的方式来表达numpy中的以下点积?我有以下形状:

>>> h.shape
(600L, 400L, 3L)
>>> c.shape
(400L, 3L)
Run Code Online (Sandbox Code Playgroud)

我想计算以下内容,如果可能的话没有循环:

ans = np.empty((600, 400))
for i in range(400):
     ans[:, i] = h[:, i, :].dot(c[i, :])
Run Code Online (Sandbox Code Playgroud)

我认为应该可以通过simeple重塑,但我不知道如何atm.

python numpy

3
推荐指数
2
解决办法
212
查看次数

标签 统计

python ×5

numpy ×3

matplotlib ×1

matrix ×1

pyqt ×1

pyqt4 ×1

qt ×1