我在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之前我没有遇到这个问题,我的数字有缩放和移动按钮,但现在我只得到图形本身.
谢谢.
我希望有一个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数组呢?
谢谢.
我正在寻找一个函数,它获取一个一维排序数组并返回一个包含两列的二维数组,第一列包含非重复项,第二列包含项的重复次数。现在我的代码如下:
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 函数,或者我的好吗?
谢谢。
我想要一个名为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中留下注释的两种方法.一个是使用"""
,另一个是使用#
.我知道第一个可以用来返回函数帮助作为一个好处.但什么时候应该使用一个而另一个?还有我如何发表评论?我是否必须按Tab键并使用下面的命令排列第一行注释?或者我必须从行的开头开始?
我所知道的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) 如下面的代码所示,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) 我试图绘制两次通过双循环的不同的函数集。我不知道如何要求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)
有什么办法可以做到一个循环吗?
我正在尝试使用模板匹配在从 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) 假设我有一个功能列表
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)
但事情是这样的方法不适用于多个功能!