现在我已经把头撞到了墙上几天,试图解决这个问题.我一直在开始使用Jython进行快速原型设计.我已经看到了一个看起来非常基本的问题,但我似乎无法超越它.
我是在JythonBook的10章,并击中了问题,当我试着写,并使用了"滩"级(在标有"清单10-1"一节开始).我可以导入并使用java.lang.Math就好了,但无法让"Beach"类为我的生活工作.我写了Beach类,把它变成了一个jar并改变了权限,
jar cf Beach.jar Beach.java chmod 777 Beach.jar
并确保Beach.jar和Beach.java都在当前的工作目录中,以及/ Library/Java/Extensions /(我在Mac上) - 没有骰子.
我只是想不出可能是什么问题.我希望有人会在这里看到我错过的东西.
为了您的方便,我认为从"实时"Jython会话中可能有用的一切:
$ jython
Jython 2.5.2 (Release_2_5_2:7206, Mar 2 2011, 23:12:06)
[Java HotSpot(TM) 64-Bit Server VM (Apple Inc.)] on java1.6.0_24
Type "help", "copyright", "credits" or "license" for more information.
>>> ## First try importing "Math" from Java:
>>> from java.lang import Math
>>> Math.max(4, 7)
7L
>>> ## Try System from Java:
>>> javasystem.out.println("Hello")
Traceback (most recent call last):
File "<stdin>", line 1, in …Run Code Online (Sandbox Code Playgroud) 我有一门课,我想用 Numba 加速。该类通过简单地使用特定种子创建 NumPy 的 RandomState 实例为每个实例使用“随机数生成器”(因此我可以稍后复制我的工作)。当我使用 Numba 的 autojit 时,我收到一个奇怪的错误,这在“常规”Python 中不会出现。
幸运的是,这种行为非常容易复制。这是一个说明错误的简单示例:
from numpy.random import RandomState
from numba import autojit
# ------- This works in "regular Python" ------------
class SillyClass1(object):
def __init__(self, seed):
self.RNG = RandomState(seed)
def draw_uniform(self):
return self.RNG.uniform(0,1)
test1 = SillyClass1(123456)
test1.draw_uniform()
# Output:
# 0.12696983303810094
# The following code -- exactly the same as above, but with the @autojit
# decorator, doesn't work, and throws an error which I am having a hard
# time understanding …Run Code Online (Sandbox Code Playgroud) 使用scipy.integrate.quad时,我发现了一个奇怪的行为。此行为也出现在Octave的quad函数中,这使我相信它可能与QUADPACK本身有关。有趣的是,使用完全相同的Octave代码,此行为未在MATLAB中显示。
关于这个问题。我在数值上整合了各种边界上的对数正态分布。因为F是对数正态的cdf,a是下限,b是上限,所以我发现在某些情况下,
当b是一个“非常大的数字”时,integral(F,a,b)= 0,而
当b为np.inf时,integrate(F,a,b)=正确的极限。(或者只是Inf for Octave。)
以下是一些示例代码,以展示其实际效果:
from __future__ import division
import numpy as np
import scipy.stats as stats
from scipy.integrate import quad
# Set up the probability space:
sigma = 0.1
mu = -0.5*(sigma**2) # To get E[X] = 1
N = 7
z = stats.lognormal(sigma, 0, np.exp(mu))
# Set up F for integration:
F = lambda x: x*z.pdf(x)
# An example that appears to work correctly:
a, b = 1.0, 10
quad(F, a, b)
# …Run Code Online (Sandbox Code Playgroud)