小编phy*_*ael的帖子

编写集成高斯函数的Python函数的最佳方法是什么?

在尝试使用scipy的四边形方法来集成高斯(假设有一种名为gauss的高斯方法)时,我遇到了将所需参数传递给高斯并留下四边形来对正确变量进行积分的问题.有没有人有一个如何使用四维w /多维函数的好例子?

但这让我想到了一个关于整合高斯的最佳方法的更大问题.我没有在scipy中找到高斯整合(令我惊讶).我的计划是编写一个简单的高斯函数并将其传递给quad(或者现在可能是一个固定宽度的积分器).你会怎么做?

编辑:固定宽度意味着像trapz一样使用固定的dx来计算曲线下的区域.

到目前为止我所得到的是一个方法make___gauss,它返回一个lambda函数,然后可以进入quad.通过这种方式,我可以在积分之前使用我需要的平均值和方差来生成正常函数.

def make_gauss(N, sigma, mu):
    return (lambda x: N/(sigma * (2*numpy.pi)**.5) *
            numpy.e ** (-(x-mu)**2/(2 * sigma**2)))

quad(make_gauss(N=10, sigma=2, mu=0), -inf, inf)
Run Code Online (Sandbox Code Playgroud)

当我尝试传递一般高斯函数(需要用x,N,mu和sigma调用)并使用四边形填充一些值时

quad(gen_gauss, -inf, inf, (10,2,0))
Run Code Online (Sandbox Code Playgroud)

参数10,2和0不一定匹配N = 10,sigma = 2,mu = 0,这促使更多的扩展定义.

scipy.special中的erf(z)将要求我确切地定义最初的t,但很高兴知道它就在那里.

python gaussian integral scipy

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

IPython选项卡仅完成一些模块

我正在使用EPD版本的python和IPython.使用easy_install安装一些模块之后我注意到,尽管可以导入它们,但它们不能完成选项卡.它们存在于路径上但是,虽然包含模块(pylab,readline,math)可以完成,但这些新模块却不能.

任何人都知道我应该调查什么来找到问题?我检查过这些包与其他模块在同一个地方:

In [1]: import pylab

In [2]: pylab
Out[2]: <module 'pylab' from '/Library/Frameworks/Python.framework/Versions/5.0.0/lib/python2.5/site-packages/pylab.pyc'>

In [3]: import BeautifulSoup

In [4]: BeautifulSoup
Out[4]: <module 'BeautifulSoup' from '/Library/Frameworks/Python.framework/Versions/5.0.0/lib/python2.5/site-packages/BeautifulSoup-3.1.0.1-py2.5.egg/BeautifulSoup.pyc'>
Run Code Online (Sandbox Code Playgroud)

也许某些事情没有.eggs正确处理?谢谢.

更新:关注gnibbler的帖子后,我发现选项卡完成在completer.py的第633行遇到异常:

    try:
        ret = self.matches[state].replace(magic_prefix,magic_escape)
        return ret
    except IndexError:
        return None
Run Code Online (Sandbox Code Playgroud)

但是造成失败的原因是什么......

更新:

In [5]: from Bea<tab_here>
*** COMPLETE: <Bea> (0)
matches: []
state: 0
Run Code Online (Sandbox Code Playgroud)

所以这只是说匹配列表是一个空集:没有匹配.它仍然没有找到模块.matches当我有时间的时候,我会试着去研究一下它在寻找模块的位置.

python module tab-completion ipython enthought

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

for循环中bash中的简单数学语句

我是新手来编写脚本并且通常可以避免所有成本但是我需要编写一个bash脚本来执行远程集群上的一些简单的事情.我遇到了一个执行以下操作的for循环问题:

for i in {1..20}
do
    for j in {1..20}
    do
        echo (i*i + j*j ) **.5  <--- Pseudo code!
    done
done
Run Code Online (Sandbox Code Playgroud)

你能帮我解决这个简单的数学问题吗?我$到处都扔了,不能写得好.如果你能帮助我理解变量在bash for循环中的命名/赋值方式以及bash数学解释的局限性(你如何做平方根?)我将非常感激.谢谢!

math syntax bash for-loop

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

程序员及其代码的Google Wave扩展程序

很抱歉,如果这是众所周知的,但谷歌搜索我的答案只提出了关于制作谷歌Wave小工具的链接.

我的问题是,是否有任何Google Wave小工具可以进行更好的协作代码编辑?我的意思是,我可以将字体设置为固定宽度等,但它们是为它设计的任何小工具吗?

回复不应包含任何关于git或的内容svn.当我想使用那些时,我会使用它们.这是关于Google Wave的!

google-gadget collaborative google-wave

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

C++新手:将fstream传递给函数以读取数据

我有一个名为num.txtwho的唯一内容就是该行的文本文件123.然后我有以下内容:

void alt_reader(ifstream &file, char* line){
    file.read(line, 3);
    cout << "First Time: " << line << endl;
}

int main() {
    ifstream inFile;
    int num;
    inFile.open("num.txt");
    alt_reader(inFile, (char*)&num);
    cout << "Second Time: " << num << endl;
}
Run Code Online (Sandbox Code Playgroud)

输出是:

First Time: 123
Second Time: 3355185
Run Code Online (Sandbox Code Playgroud)

你能帮我弄清楚如何获得一个在函数中读取的fstream仍然在main中分配变量吗?我这样做是因为alt_reader真的有更多,但这是我坚持的部分.非常感谢您的帮助.

更新:使用比尔奥纳尔的评论,我写了

void alt_reader(ifstream &file, stringstream &str, int n){
    char buffer[n+1];
    file.read(buffer, n);
    buffer[n] = 0;
    str << buffer;
    cout << "First Time: " << buffer << endl; //First …
Run Code Online (Sandbox Code Playgroud)

c++ fstream function

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

使用Python与远程计算机连接

我刚刚成为我的研究小组的系统管理员,在这方面,我是一个新手.我正在尝试制作一些工具来监控网络,并需要帮助开始使用python(我的母语)实现它们.

例如,我想查看谁登录到远程计算机.手工,我是ssh who,但是如何将这些信息输入脚本进行操作?就像是,

import remote_info as ri
ri.open("foo05.bar.edu")
ri.who()

Out[1]: 
hutchinson tty7         2009-08-19 13:32 (:0)
hutchinson pts/1        2009-08-19 13:33 (:0.0)
Run Code Online (Sandbox Code Playgroud)

类似地,例如cat /proc/cpuinfo获取节点的处理器信息.一个起点真的很棒.谢谢.

python networking monitoring

5
推荐指数
1
解决办法
4232
查看次数

运行top,打印输出,然后退出或如何在没有top的情况下获得真正的内存使用量

我正在运行Mac OS 10.6.我想运行top以获取内存使用,但不是以交互模式或任何更新模式.我只想在那个时间点使用内存然后返回提示.我已经寻找其他实用程序来获取内存...但是很短(vm_stat用于虚拟内存).有人可以指导我如何获取top或其他东西打印内存使用到stdout?

memory exit quit

5
推荐指数
1
解决办法
3357
查看次数

在运行Snow Leopard的Mac上构建PortAudio和PyAudio(拱门问题)

我想告诉你我尝试了什么,然后我真的欢迎你能提供关于我如何正确设置PortAudio和PyAudio的评论!

我已经尝试从他们的网站上为我的运行Snow Leopard的Core 2 Duo MacBook Pro 安装了PortAudio的stable和svn版本.稳定版本的sizeof错误可以修复(?),但每日svn版本安装得很好./configure && make && make install(所以这就是我正在使用的).测试编译正确,我可以得到二进制文件以产生输出/可以读取麦克风输入.

好吧,那么PyAudio就有麻烦了.从源代码安装我收到有关未找到库的错误:

mwoods 13 pyaudio-0.2.3$ python setup.py build
running build
running build_py
running build_ext
building '_portaudio' extension
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch ppc -arch x86_64 -pipe -DMACOSX=1 -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c _portaudiomodule.c -o build/temp.macosx-10.6-universal-2.6/_portaudiomodule.o -fno-strict-aliasing
_portaudiomodule.c:35:25: error: pa_mac_core.h: No such file or directory
_portaudiomodule.c:679: error: expected specifier-qualifier-list before ‘PaMacCoreStreamInfo’
_portaudiomodule.c: In function ‘_pyAudio_MacOSX_hostApiSpecificStreamInfo_cleanup’: …
Run Code Online (Sandbox Code Playgroud)

python portaudio pyaudio

4
推荐指数
1
解决办法
6029
查看次数

Python,ROOT和MINUIT集成?

我是高能粒子物理系的一名谦虚的研究生.由于对C/C++毫无根据的厌恶以及对python的热爱,我到目前为止已经使用python进行数据分析(只是简单的事情)并且我将尝试支持针对ROOT库的python脚本,特别是使用MINUIT一些参数最小化.

除了询问是否有人对这些的安装和使用有任何提示,我想知道是否值得尝试它或只是为了使用C/C++的"规范",或者像pyminuit这样的东西是可用的.或者您认为我可以将整个C/C++脚本包装成python代码以利用我现有的自编分析方法(我还没有包装经验).抱歉模糊不清; 我走向了一个远远超过我目前经历的伟大未知.

python data-analysis word-wrap root-framework

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

将vim变量插入文本以注释快捷方式

我有一个简单的目标:地图按Ctrl-C,命令我不认为我曾经用来杀掉vim,在一行正确的字符(S)的开头自动插入根据注释掉线文件的文件类型.

我想我可以使用自动命令识别文件类型,并在文件打开时将vim变量设置为正确的注释字符.所以我尝试了类似的东西:

" Control C, which is NEVER used. Now comments out lines!
autocmd BufNewFile,BufRead *.c let CommentChar = "//"
autocmd BufNewFile,BufRead *.py let CommentChar = "#"
map <C-C> mwI:echo &CommentChar<Esc>`wll
Run Code Online (Sandbox Code Playgroud)

该地图标记我当前的位置,在插入模式下转到行的开头,在该点显注释字符,进入命令模式,返回到设置标记,并向右移动两个字符以弥补插入注释字符(假设C样式注释).

斜体部分是我遇到麻烦的部分; 它只是作为一个占位符来代表我想做的事情.你能帮我弄清楚如何实现这个目标吗?如果您使用strlen(CommentChar)向右移动正确数量的空格,则可获得奖励积分!vim-master的额外奖励积分包括如果您处于视觉模式时如何进行块式评论!!

我在vim脚本方面还是比较新的; 我的.vimrc是98行长,所以如果你能解释你提供的任何答案,请帮助我!谢谢.

variables vim comments autocmd

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