小编fff*_*yyy的帖子

如何在numba编译函数中使用np.empty;错误消息“所有模板被拒绝”

当我尝试np.empty在用 numba 编译的函数定义中使用时遇到了这个奇怪的错误,并打开nopython=True以确保优化的输入有效。

这很奇怪,因为 numba 声称支持np.empty前两个参数,而我只使用前两个参数(我认为正确吗?),所以我不知道为什么它输入不正确。

@jit(nopython=True)
def empty():
    return np.empty(5, np.float)
Run Code Online (Sandbox Code Playgroud)

在 ipython notebook 中定义上述函数后,

empty()
Run Code Online (Sandbox Code Playgroud)

给出以下错误消息:

@jit(nopython=True)
def empty():
    return np.empty(5, np.float)
Run Code Online (Sandbox Code Playgroud)

python arrays numpy typing numba

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

为什么 matplotlib ax.transData.transform 在不同的 ipython 单元格中给出不同的值?如何解决这个问题?

我在 ipython 中遇到了 matplotlib 的一个非常奇怪的问题ax.transData.transform。基本上,在fig, ax = plt.subplots()声明的单元格中,运行ax.transData.transform或轴是不正确的。但是,如果您在后面的单元格中运行,它将返回正确的值。xyax.transData.transform

为了演示,下面是在声明的单元格中运行转换的代码fig, ax = plt.subplots()

fig, ax = plt.subplots()
ax.set_aspect('equal')
ax.set_ylim(-2,2)
ax.set_xlim(-5,5)
nsize=[x*100 for x in d]
yradius = (ax.transData.transform([(0,2)]) - ax.transData.transform([(0,1)]))[0,1]
print("yRadius: {}".format(yradius))
xradius = (ax.transData.transform([(2,0)]) - ax.transData.transform([(1,0)]))[0,0]
print("xRadius: {}".format(xradius))
Run Code Online (Sandbox Code Playgroud)

打印输出是

yRadius: 54.360000000000014
xRadius: 33.48000000000002
Run Code Online (Sandbox Code Playgroud)

在上述单元格下方的单元格中,如果我运行

yradius = (ax.transData.transform([(0,2)]) - ax.transData.transform([(0,1)]))[0,1]
print("yRadius: {}".format(yradius))
xradius = (ax.transData.transform([(2,0)]) - ax.transData.transform([(1,0)]))[0,0]
print("xRadius: {}".format(xradius))
Run Code Online (Sandbox Code Playgroud)

输出是

yRadius: 33.48000000000002
xRadius: 33.48000000000002
Run Code Online (Sandbox Code Playgroud)

为什么两个单元格的值不一样?尽管xRadius第一个单元格的 与底部单元格的值匹配,但yRadius是关闭的。我认为底部单元格的值是正确的,因为由于 …

transform axes matplotlib ipython subplot

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

标签 统计

arrays ×1

axes ×1

ipython ×1

matplotlib ×1

numba ×1

numpy ×1

python ×1

subplot ×1

transform ×1

typing ×1