小编kef*_*ich的帖子

&vs*和| vs +

在进行布尔数组比较时,使用&代替*|替代是否有任何优势/惯例+?这些总是相同吗?

(如果这些是在文档中,链接可能是一个可接受的答案,但我天真地搜索'numpy&符'和'numpy elementwise布尔比较'没有产生任何相关的东西)

numpy

9
推荐指数
2
解决办法
2843
查看次数

补丁中的matplotlib颜色渐变?

我想在matplotlib中创建一个椭圆,其填充颜色具有取决于半径的alpha(不透明度)值;

例如,2D高斯.

有没有办法做到这一点?

可以很容易地创建具有颜色渐变的矩形图(如Gradient facecolor matplotlib条形图)但我无法弄清楚如何对圆/椭圆进行相同的操作.

python matplotlib

8
推荐指数
2
解决办法
7152
查看次数

Python:两个具有相同名称的包; 你如何指定加载哪个?

我有两个包安装具有相同名称的不同包.它们都是"包",因为它们具有在命令setup.py中指定的顶级文件.package=['foo']setup

如果我安装使用distutils.core,最后安装将覆盖前一个(但我认为不会覆盖除非.py文件都具有相同的名称?).如果我安装使用setuptools,两个包安装到不同的鸡蛋.

一种选择是sys.path在导入包名之前明确设置; 这似乎是"非pythonic"而且很脏.

假设我在eggssetuptools中安装了这两个名称相同的软件包,我该如何指定导入的软件包?

python import

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

Matplotlib:重新打开封闭的数字?

是否有可能在matplotlib中重新打开一个封闭的数字(即用户X'd)?以下代码显示了天真的方法:

In [14]: fig = figure(10)

In [15]: close(fig)

In [16]: fig.show()

Exception in Tkinter callback
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk/Tkinter.py", line 1410, in __call__
    return self.func(*args)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk/Tkinter.py", line 495, in callit
    func(*args)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib/backends/backend_tkagg.py", line 253, in idle_draw
    self.draw()
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib/backends/backend_tkagg.py", line 239, in draw
    tkagg.blit(self._tkphoto, self.renderer._renderer, colormode=2)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib/backends/tkagg.py", line 19, in blit
    tk.call("PyAggImagePhoto", photoimage, id(aggimage), colormode, id(bbox_array))
TclError: this isn't a Tk application
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个带有小部件的图形,因此可以使用一种解决方法(只需创建一个新图形),但我想知道该figure实例在关闭后是否完全没用.

matplotlib

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

关闭/退出时的python分段错误

我有一个奇怪的错误,现在在2台机器上重复.它可能仅限于python 2.7 64位,但目前尚不清楚.在Mac OS X 10.7上,我得到:分段错误:11和10.6每当我关闭python时,我得到一个简单的"分段错误".

但是,错误很难再现.简单的python脚本如:python -c"import sys; print sys.maxint"打开和关闭没有问题.

我怀疑matplotlib存在问题,但类似地python -c"import pylab; pylab.plot(); pylab.show()"也没有任何问题.

但是,有许多不同的软件包会在python关闭时导致分段错误,但在交互式会话期间不会导致分段错误,直到脚本完成为止.因此,错误不会影响我的任何代码 - 但是当在10.7中运行任何内容时,它会造成混乱,因为会弹出焦点窃取错误消息.

我会努力列出并记录导致崩溃的脚本/模块,但我想我现在就提出问题,看看是否有其他人遇到过类似的问题.

这是一个示例引用(感谢Ned的建议).

Process:         python2.7 [42731]
Path:            /usr/local/bin/python
Identifier:      python2.7
Version:         ??? (???)
Code Type:       X86-64 (Native)
Parent Process:  bash [1838]

Date/Time:       2011-09-16 20:38:52.847 -0600
OS Version:      Mac OS X 10.7.1 (11B2118)
Report Version:  9

Interval Since Last Report:          11388 sec
Crashes Since Last Report:           12
Per-App Crashes Since Last Report:   11
Anonymous UUID:                      CE462F4B-5DAF-482A-8901-28ADB7AB0AD6

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception …
Run Code Online (Sandbox Code Playgroud)

python

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

ipython调试器:交互式pdb上的完全回溯?

我最近从ipython0.10切换到ipython0.11.在ipython0.11中,我只看到python调试器参与(即使用%pdb)时的完整回溯的一小段,而在ipython0.10中我会看到完整的回溯.据我所知,pdb命令行无法直接访问完整的回溯 - 您可以使用'u'浏览它,但无法直接看到它.

那么,有没有办法显示完整的追溯?比如配置参数?

或者,更有用的是,有没有办法让ipython只显示被捕获的异常,而不是显示它被捕获的代码中的位置?

编辑:示例:

In [1]: pdb
Automatic pdb calling has been turned ON

In [2]: 1/0
> <ipython-input-2-05c9758a9c21>(1)<module>()
     -1 1/0

ipdb> q
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
/Users/adam/<ipython-input-2-05c9758a9c21> in <module>()
----> 1 1/0

ZeroDivisionError: integer division or modulo by zero
Run Code Online (Sandbox Code Playgroud)

我想 q退出pdb 之前看到ZeroDivisionError .

python ipython pdb ipdb

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

在 matplotlib 中反转(不是反转)颜色图?

有没有什么好的方法可以反转(不是反转,这很简单,请参阅Invert colormap in matplotlib)matplotlib 中的颜色图?

即,我想获取一个 png 图像,它具有以下形式的颜色元组(1,1,0,1),并使用 matplotlib 颜色图来获取整数或浮点数。

我想我可以拼凑一些东西来做到这一点,但我不能是第一个想要这个功能的人——它是否存在于我找不到的地方,或者它内置于 matplotlib 中?

matplotlib

6
推荐指数
0
解决办法
1659
查看次数

在不改变原轴大小的情况下制作分隔线?

Matplotlib的make_axes_locatable工具允许您将新轴添加到现有轴的一侧.但是,它会调整父轴的大小.有办法避免这种情况吗?

下面是一个完整的示例,显示了问题以及如何重现它:

import matplotlib.pyplot as pl
from mpl_toolkits.axes_grid import make_axes_locatable
import matplotlib.axes as maxes


fig = pl.figure()
ax1=pl.subplot(1,3,1)
ax1.imshow([[0,1],[2,0]])
ax1.yaxis.set_visible(False)
ax1.xaxis.set_visible(False)
ax2=pl.subplot(1,3,2)
ax2.imshow([[0,1],[2,0]])
ax2.yaxis.set_visible(False)
ax2.xaxis.set_visible(False)
ax3=pl.subplot(1,3,3)
ax3.imshow([[0,1],[2,0]])
ax3.yaxis.set_visible(False)
ax3.xaxis.set_visible(False)
pl.subplots_adjust(wspace=0)


divider = make_axes_locatable(ax1)
cax1 = divider.new_horizontal(size=0.2, pad=0.0, pack_start=True, axes_class=maxes.Axes)
pl.colorbar(ax1.images[0],cax=cax1)
cax1.yaxis.set_label_position('left')
cax1.yaxis.set_ticks_position('left')
fig.add_axes(cax1)

divider = make_axes_locatable(ax2)
cax2 = divider.new_vertical(size=0.2, pad=0.0, pack_start=True, axes_class=maxes.Axes)
fig.add_axes(cax2)
pl.colorbar(ax2.images[0],cax=cax2,orientation='horizontal')
# thin out the tick labels for visibility
for t in cax2.xaxis.get_majorticklabels()[::2]:
    t.set_visible(False)


divider = make_axes_locatable(ax3)
cax3 = divider.new_horizontal(size=0.2, pad=0.0, pack_start=False, axes_class=maxes.Axes)
pl.colorbar(ax3.images[0],cax=cax3)
fig.add_axes(cax3) …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

保存带有多个扩展名的图窗?

在 matplotlib 中,是否有任何(特别聪明的)方法来保存具有多个扩展名的图形?

用例:我通常需要 .png 文件用于快速查看、上传到网络等。但对于出版质量的数字,我需要 .pdf 或 .eps 文件。通常,我想要全部 3 个。

不难做到:

for suffix in 'png eps pdf'.split():
    pl.savefig(figname+"."+suffix)
Run Code Online (Sandbox Code Playgroud)

但它确实涉及大量重写代码(因为我现在通常只是savefig(figname+'.png')到处都有),这对于方便的包装函数来说似乎是一个简单的例子。

matplotlib

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

如何在python装饰器中以编程方式更改函数*不*的argspec?

与以下内容密切相关:如何编程方式更改python装饰器中函数的argspec?

装饰器模块提供了制作装饰器功能的方法,该功能保留了修饰函数的argspec.

如果我定义一个不用作装饰器的函数,有没有办法复制另一个函数的argspec?

用例示例:

class Blah(object):
    def foo(self, *args, **kwargs): 
        """ a docstr """
        result = bar(*args, **kwargs)
        result = result**2 # just so it's clear we're doing something extra here...
        return result

def bar(x, y, z=1, q=2):
    """ a more useful docstr, saying what x,y,z,q do """
    return x+y*z+q
Run Code Online (Sandbox Code Playgroud)

我希望fooargspec看起来像bar,但保持不变的来源(即inspect.getsource(foo)仍会显示result垃圾).这样做的主要目的是获取sphinx docs和ipython的交互式帮助以显示适当的参数.

正如另一个问题的答案所说,装饰包显示了一种方法,但我迷失了代码的内容.似乎decorator包正在重新编译源代码,或类似的东西.我原本希望有一种更简单的方法,例如类似的方法foo.argspec = bar.argspec.

python

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

标签 统计

python ×6

matplotlib ×5

import ×1

ipdb ×1

ipython ×1

numpy ×1

pdb ×1