标签: scientific-computing

迭代过程中Python字典的顺序是否得到保证?

我目前正在使用SciPy.integrate.ode在Python中实现复杂的微生物食品网.我需要能够轻松地将物种和反应添加到系统中,所以我必须编写一些非常通用的代码.我的方案看起来像这样:

class Reaction(object):
    def __init__(self):
        #stuff common to all reactions
    def __getReactionRate(self, **kwargs):
        raise NotImplementedError

... Reaction subclasses that 
... implement specific types of reactions


class Species(object):
    def __init__(self, reactionsDict):
        self.reactionsDict = reactionsDict
        #reactionsDict looks like {'ReactionName':reactionObject, ...}
        #stuff common to all species

    def sumOverAllReactionsForThisSpecies(self, **kwargs):
        #loop over all the reactions and return the 
        #cumulative change in the concentrations of all solutes

...Species subclasses where for each species
... are defined and passed to the superclass constructor

class …
Run Code Online (Sandbox Code Playgroud)

python dictionary numpy scientific-computing scipy

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

如何测试科学软件?

我确信软件测试确实非常重要,特别是在科学方面.然而,在过去的6年中,我从来没有遇到任何经常进行测试的科学软件项目(其中大多数甚至不受版本控制).

现在我想知道你如何处理科学代码(数值计算)的软件测试.

从我的观点来看,标准单元测试经常忽略这一点,因为没有确切的结果,因此使用assert(a == b)可能会因"正常"数值误差而变得有点困难.

所以我很期待阅读你对此的想法.

testing unit-testing scientific-computing

32
推荐指数
3
解决办法
3165
查看次数

基于概率的真或假输出

是否有一个Python的标准函数,它根据从0到1的随机数的输入概率性地输出True或False?

我的意思是:

def decision(probability):
    ...code goes here...
    return ...True or False...
Run Code Online (Sandbox Code Playgroud)

上面的例子,如果给出一个输入,比方说,0.7将以70%的概率返回True,而以30%的概率返回false

python scientific-computing

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

开源替代MATLAB的fmincon函数?

是否有一个开源替代MATLAB的fmincon约束线性优化功能?我正在重写一个MATLAB程序来使用Python/NumPy/SciPy,这是我找不到的唯一函数.基于NumPy的解决方案将是理想的,但任何语言都可以.

python matlab numerical numpy scientific-computing

31
推荐指数
4
解决办法
3万
查看次数

sigmoidal回归与scipy,numpy,python等

我有两个变量(x和y)彼此之间有一些S形关系,我需要找到某种预测方程,这将使我能够在给定任何x值的情况下预测y的值.我的预测方程需要显示两个变量之间的某种S形关系.因此,我不能满足于产生线的线性回归方程.我需要看到两个变量图的右侧和左侧出现的斜率的逐渐曲线变化.

我在googling曲线回归和python之后开始使用numpy.polyfit,但是如果你运行下面的代码,这给了我可怕的结果. 任何人都可以告诉我如何重新编写下面的代码,以获得我想要的S形回归方程式吗?

如果你运行下面的代码,你可以看到它给出了一个向下的抛物线,这不是我的变量之间的关系应该是什么样子.相反,我的两个变量之间应该存在更多的S形关系,但是与我在下面的代码中使用的数据紧密相符.下面代码中的数据来自大样本研究的手段,因此它们包含的统计功效比五个数据点所暗示的要多.我没有大样本研究的实际数据,但我确实有下面的方法和他们的标准偏差(我没有显示).我更愿意用下面列出的平均数据绘制一个简单的函数,但如果复杂性会带来实质性的改进,代码可能会变得更加复杂.

如何更改我的代码以显示最适合的sigmoidal函数,最好使用scipy,numpy和python? 这是我的代码的当前版本,需要修复:

import numpy as np
import matplotlib.pyplot as plt

# Create numpy data arrays
x = np.array([821,576,473,377,326])
y = np.array([255,235,208,166,157])

# Use polyfit and poly1d to create the regression equation
z = np.polyfit(x, y, 3)
p = np.poly1d(z)
xp = np.linspace(100, 1600, 1500)
pxp=p(xp)

# Plot the results
plt.plot(x, y, '.', xp, pxp, '-')
plt.ylim(140,310)
plt.xlabel('x')
plt.ylabel('y')
plt.grid(True)
plt.show()
Run Code Online (Sandbox Code Playgroud)

以下编辑:(重新构建问题)

您的反应及其速度令人印象深刻.谢谢你,unutbu.但是,为了产生更有效的结果,我需要重新构建我的数据值.这意味着将x值重新转换为max x值的百分比,同时将y值重新转换为原始数据中x值的百分比.我尝试使用您的代码执行此操作,并提出以下内容:

import numpy as np 
import matplotlib.pyplot as plt 
import scipy.optimize 

# Create numpy …
Run Code Online (Sandbox Code Playgroud)

python statistics numpy scientific-computing scipy

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

用功能语言进行科学数学?

是否有使用函数式编程语言制作的严肃的科学数学库?从功能语言的本质来看,人们会认为它们特别适合数学,但众所周知的算法似乎是程序性的.

例如,经典的数字食谱系列几乎是以程序的方式编写的.LAPACK在许多领域几乎都是事实上的标准,但它在Fortran中,因此是程序性的或者可能是OO,但绝对不具备功能性.

有没有人能够将这些着名的程序算法转换为功能风格?

更新:似乎是在符号计算中使用函数式语言,例如在Mathematica中.但是,是否存在与数值计算和函数算法本质上不兼容的东西?或者只是因为命令式算法首先被发明,没有人打算提出功能等价物?

math functional-programming scientific-computing

26
推荐指数
4
解决办法
4844
查看次数

在哪里可以找到有助于科学的编程项目?

我想在业余时间从事编程项目,并想知道是否有一个项目可以帮助科学界以某种方式?

open-source scientific-computing

25
推荐指数
4
解决办法
2936
查看次数

Haskell适合长期运行的应用程序吗?

我认为Haskell是一种优美的语言,从基准测试来看,它的实现可以生成快速的代码.

但是,我想知道它是否适用于长期运行的应用程序,或者是否会追逐所有潜在的懒惰引发的泄漏,人们可能会在短期应用程序中忽略这些泄漏,这会让人感到沮丧吗?

这个Reddit评论回应了我的担忧:

只要有多个函数递归调用自身,堆配置文件就会停止为您提供任何帮助,以确定泄漏发生的位置.

(整个讨论似乎很有洞察力和坦率)

我个人对高性能计算感兴趣,但我想服务器和HPC有这个共同的要求.

如果Haskell适用于此类应用程序,是否有任何证明这一点的示例,即应用程序

  1. 需要运行数天或数周,因此需要消除所有相关的泄漏(程序花费睡眠或等待某些底层C库返回的时间显然不计算在内)
  2. 非平凡(如果应用程序很简单,开发人员可能只是猜测泄漏的来源并尝试各种修复.但是,我不相信这种方法可以很好地扩展.堆配置文件在识别源代码时的帮助性.具有多个[相互]递归函数的泄漏似乎特别令人担忧,如上面的Reddit讨论所述)

如果Haskell不适合这样的应用程序,为什么呢?

更新:作为示例提出的Haskell的Yesod Web服务器框架可能存在内存问题.我想知道是否有人在连续几天提出请求后测试其内存使用情况.

performance haskell memory-leaks functional-programming scientific-computing

25
推荐指数
4
解决办法
2554
查看次数

23
推荐指数
4
解决办法
6974
查看次数

Javascript和科学处理?

Matlab,R和Python功能强大,但对于我想做的一些数据挖掘工作来说,要么成本高,要么慢.我正在考虑将Javascript用于 速度,良好的可视化库,以及能够将浏览器用作接口.

我面临的第一个问题是科学编程的明显问题,如何对数据文件进行I/O操作?第二个是客户端还是服务器端?最后一个问题,我可以制作一些真正可移植的东西,即把它全部放在USB上并从中运行吗?

我花了几个星期寻找答案.Server2go似乎解决了客户端/服务器需求,我认为这意味着我可以从客户端的程序中获取数据.Server2go还允许从USB运行.我使用的数据文件通常是XML,似乎有几个javascript的javascript转换器.

然而,在看完之后,我不确定我的方法是否有意义.所以在我进一步提交之前,有关Javascript作为科学​​数据处理的便携式工具的任何建议/想法/指导吗?

javascript scientific-computing data-mining

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