小编Cup*_*tor的帖子

错误,删除EPD后使用弃用的类PySimpleApp

我在Mac OSX 10.8.2上使用spyder,我有卸载的Enthought.在我的代码中,我使用了matplotlib的pyplot.但是,当我运行简单的绘图程序时,我不断收到以下警告.

 /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/backends/backend_wx.py:1382: wxPyDeprecationWarning: Using deprecated class PySimpleApp. 
      wxapp = wx.PySimpleApp()
Run Code Online (Sandbox Code Playgroud)

我尝试了pip,手动安装matplotlib并且没有帮助.我该怎么办呢?这些是与绘图相关的代码行:

markerSize=400;
fig = plt.gcf()
plt.scatter(X,Y,marker='+',s=markerSize)
circle=plt.Circle((X[i]+k*meshStep,Y[i]+j*meshStep),frequency/magnification,color='r');
fig.gca().add_artist(circle)
plt.xlim(min(X)-1,max(X)+1)
plt.ylim(min(Y)-1,max(Y)+1) 
Run Code Online (Sandbox Code Playgroud)

在卸载Enthought之前我没有遇到这个问题,我的数字有缩放和移动按钮,但现在我只得到图形本身.

谢谢.

python macos wxpython matplotlib

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

具有mpz/mpfr值的numpy数组

我希望有一个mpz/mpfr值的numpy数组.因为我的代码:

import numpy as np
import gmpy2
A=np.ones((5,5));
print A/gmpy2.mpfr(1);
Run Code Online (Sandbox Code Playgroud)

产生:

RuntimeWarning: invalid value encountered in divide
  print A/gmpy2.mpfr(1);
[[1.0 1.0 1.0 1.0 1.0]
 [1.0 1.0 1.0 1.0 1.0]
 [1.0 1.0 1.0 1.0 1.0]
 [1.0 1.0 1.0 1.0 1.0]
 [1.0 1.0 1.0 1.0 1.0]]
Run Code Online (Sandbox Code Playgroud)

据我所知,将gmpy mpfr转换为numpy float64是不可能的.那么我怎么能首先得到一个带有mpfr值的numpy数组呢?

谢谢.

python numpy type-conversion gmp

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

将数组中的重复分组?

我正在寻找一个函数,它获取一个一维排序数组并返回一个包含两列的二维数组,第一列包含非重复项,第二列包含项的重复次数。现在我的代码如下:

def priorsGrouper(priors):
    if priors.size==0:
        ret=priors;
    elif priors.size==1:
        ret=priors[0],1;
    else:
        ret=numpy.zeros((1,2));
        pointer1,pointer2=0,0;
        while(pointer1<priors.size):
            counter=0;
            while(pointer2<priors.size and priors[pointer2]==priors[pointer1]):
                counter+=1;
                pointer2+=1;
            ret=numpy.row_stack((ret,[priors[pointer1],pointer2-pointer1]))
            pointer1=pointer2;
    return ret;
print priorsGrouper(numpy.array([1,2,2,3]))    
Run Code Online (Sandbox Code Playgroud)

我的输出如下:

[[ 0.  0.]
 [ 1.  1.]
 [ 2.  2.]
 [ 3.  1.]]
Run Code Online (Sandbox Code Playgroud)

首先,我无法摆脱我的 [0,0]。其次,我想知道是否有一个 numpy 或 scipy 函数,或者我的好吗?

谢谢。

python numpy repeat scipy

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

如何在python中将对象映射到整数?

我想要一个名为MyObject的类的对象到整数的映射.我在这里读了一些东西,但是什么都不懂,这似乎不是我想要的东西.散列函数只能用于碰撞.我想要做的是通过给对象作为参数来检索值(整数).基本上我所寻找的是从MyObject到整数的函数(用数学术语表示).

所以假设这是我班级的定义:

class MyObject:
    def __init__(self,number):
        self.name = name
        self.marked=False
Run Code Online (Sandbox Code Playgroud)

所以举个例子

a=MyObject("object 1")
b=MyObject("object 2")
Run Code Online (Sandbox Code Playgroud)

现在我想要一些像f这样的映射,我可以将25分配给a和36分配给b.并且能够得到:

f(a)=25
f(b)=36
Run Code Online (Sandbox Code Playgroud)

python oop hash dictionary

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

在python中正确评论命令的方法

我知道在python中留下注释的两种方法.一个是使用""",另一个是使用#.我知道第一个可以用来返回函数帮助作为一个好处.但什么时候应该使用一个而另一个?还有我如何发表评论?我是否必须按Tab键并使用下面的命令排列第一行注释?或者我必须从行的开头开始?

python comments

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

如何减去Python中的“for”循环计数器?

我所知道的Python循环的结构for如下:

for i in range(10)
Run Code Online (Sandbox Code Playgroud)

然后范围实际上是[0,1,2,3,4,5,6,7,9]. 现在这里有一个问题,那就是我想通过放置一行来减少循环的计数器i-=1,但这并没有显示我期望的结果。

以下示例的结构与 Java 和 C 中的结构相同while(True),但在这里它可以工作,并且循环中的计数器忽略旨在减少它的行。

for i in range(10):
    i-=1
    print i
Run Code Online (Sandbox Code Playgroud)

它生成输出:

-1
0
1
2
3
4
5
6
7
8
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能得到我想要的循环for!我知道这可以很容易地完成一段时间,如下所示:

i=0
while(i<10):
   i-=1
   print i
   i+=1
Run Code Online (Sandbox Code Playgroud)

以下是 Java 代码作为示例,我希望看到无限循环打印-1

这是Java代码:

import static java.lang.System.out;

    public class HelloWorld{

         public static void main(String []args){
            for(int i=0;i<10;i++)
            {
                i--;
                out.println(i);
            }
         }
    }
Run Code Online (Sandbox Code Playgroud)

python for-loop range

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

如何在numpy.empty数组中存储int值?

如下面的代码所示,empty数组用浮点数替换我的int值.我怎么能阻止这个?

import numpy as np
a=np.empty(3)
a[0]=1
a[1]=2
a[2]=3
print a
Run Code Online (Sandbox Code Playgroud)

输出:

[1., 2., 3.]
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

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

for循环中的多个`subplot2grid`

我试图绘制两次通过双循环的不同的函数集。我不知道如何要求subplot2grid对第二个数字采取行动。

import numpy as np
from matplotlib import pyplot as plt
t=np.linspace(0,1,100)
fig1=plt.figure()
for i in range(3):
    for j in range(3):
        plt.subplot2grid((3,3),(i,j))
        plt.plot(t,np.sin((t*np.random.random()*10)))
fig2=plt.figure()
for i in range(3):
    for j in range(3):
        plt.subplot2grid((3,3),(i,j))
        plt.plot(t,np.cos((t*np.random.random()*10)))
plt.show()
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做到一个循环吗?

在此处输入图片说明 在此处输入图片说明

python plot matplotlib

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

OpenCV中模板匹配的分辨率操作

我正在尝试使用模板匹配在从 LaTeX 生成的给定 pdf 文档中查找方程。当我在这里使用代码时,当我从原始页面(转换为 jpeg 或 png)裁剪图片时,我只得到了很好的匹配,但是当我单独编译等式代码并生成它的 jpg/png 输出时匹配出错了。

我相信原因与分辨率有关,但由于我是该领域的业余爱好者,我无法合理地使从独立方程生成的 jpg 具有与整个页面的 jpg 相同的像素结构。这是从上述OpenCV网站复制(或多或少)的代码,这是python的一个实现:

import cv2
from PIL import Image

img = cv2.imread('location of the original image', 0)
img2 = img.copy()
template = cv2.imread('location of the patch I look for',0)
w, h = template.shape[::-1]

# All the 6 methods for comparison in a list
methods = ['cv2.TM_CCOEFF', 'cv2.TM_CCOEFF_NORMED', 'cv2.TM_CCORR',
            'cv2.TM_CCORR_NORMED', 'cv2.TM_SQDIFF', 'cv2.TM_SQDIFF_NORMED']

method = eval(methods[0])

# Apply template Matching
res = cv2.matchTemplate(img,template,method)
min_val, max_val, min_loc, max_loc = …
Run Code Online (Sandbox Code Playgroud)

python pdf opencv resolution image-processing

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

如何定义多个任意函数的总和?

假设我有一个功能列表

f1(x,y),f2(x,y),....
Run Code Online (Sandbox Code Playgroud)

如何定义以下功能:

z(x,y)=f1(x,y)+f2(x,y)+...
Run Code Online (Sandbox Code Playgroud)

我希望以后能够指定x.所以如果有人把y = c值,我希望z函数成为x的函数!在简单的情况下,当你有一个函数f时,你想通过指定y = c使f(x,y)成为x的函数,你可以使用:

z=lambda x:f(x,c)
Run Code Online (Sandbox Code Playgroud)

但事情是这样的方法不适用于多个功能!

python function

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