小编joo*_*oon的帖子

随机抽取scipy.stats .... rvs和numpy.random之间的差异

看起来如果它是相同的分布,从中抽取随机样本numpy.random比从中做出更快scipy.stats.-.rvs.我想知道是什么原因导致两者之间的速度差异?

python random numpy scipy

11
推荐指数
2
解决办法
5746
查看次数

Python将类属性导入方法本地命名空间

如果有更简单的方法将类属性分配给方法本地命名空间,我一直想知道.例如,在dosomething方法中,我明确地引用self.aself.b:

class test:
    def __init__(self):
        self.a = 10
        self.b = 20

    def dosomething(self):
        a = self.a
        b = self.b
        return(a + b)
Run Code Online (Sandbox Code Playgroud)

但有时我有很多变量(超过10个)并且输入和查看会变得混乱 - 我会var = self.var在方法的开头有一堆语句.

有没有办法以更紧凑的方式做到这一点?(我知道更新local()不是一个好主意)

编辑:理想情况下,我想要的是:

def dosomething(self):
    populate_local_namespace('a', 'b')
    return(a + b)
Run Code Online (Sandbox Code Playgroud)

python namespaces class

11
推荐指数
1
解决办法
2867
查看次数

Cython float division PyExc_ZeroDivisionError检查

我正在进行一些循环密集型计算并将代码转换为Cython.我用cython -a选项进行了分析,并检查了.html文件,看起来每当我进行浮动分割时,都会出现一些黄线,它会执行如下操作:

if (unlikely(__pyx_t_37 == 0)) {
        PyErr_Format(PyExc_ZeroDivisionError, "float division");
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
      }
Run Code Online (Sandbox Code Playgroud)

我猜这是分频器为0的情况.我正在使用一个常数,并且分频器不可能是0,我想知道是否有任何我可以做的事情来使它更快.

python cython

9
推荐指数
1
解决办法
3340
查看次数

Pycharms调试器交互式控制台非常慢

我刚开始尝试使用PyCharm,虽然非常好,但我发现调试器中的交互式控制台(可以通过断点处的"显示Python提示符"激活)速度非常慢.如果我继续按下输入,例如,在2-3次尝试之后,我必须等待几秒钟才能显示下一个提示.

这是一种常见的经历吗?我用一台非常快的机器运行Pycharm(使用i7-3770 CPU),所以我想知道是不是有问题.

python ide debugging pycharm

8
推荐指数
1
解决办法
446
查看次数

使用ipython和%pdb on访问调试会话中的变量

我是ipython的新手,我正在尝试使用ipython来调试我的代码.我做了:

[1]: %pdb
Automatic pdb calling has been turned ON
Run Code Online (Sandbox Code Playgroud)

然后

In [2]: %run mycode.py
Run Code Online (Sandbox Code Playgroud)

在代码中,我有1/0所以它引发异常并自动进入调试会话.

ZeroDivisionError: float division

ipdb> variable
array([ 0.00704313, -1.34700666, -2.81474391])
Run Code Online (Sandbox Code Playgroud)

所以我可以访问变量.但是当我做以下事情时:

ipdb> b = variable
*** The specified object '= variable' is not a function or was not found along sys.path.
Run Code Online (Sandbox Code Playgroud)

但这有效:

ipdb> b = self.X
Run Code Online (Sandbox Code Playgroud)

python ipython

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

将SPSS数据集导入Python

有没有办法将SPSS数据集导入Python,最好是NumPy重新格式?我环顾四周但找不到任何答案.

python import dataset spss

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

是否可以用NumPy重现MATLAB的randn()?

我想知道是否有可能用NumPy精确地重现MATLAB的randn()的整个序列.我使用Python/Numpy编写了我自己的例程,并且它给了我一些与其他人所做的MATLAB代码不同的结果,并且由于不同的随机抽取,我很难找到它的来源.

我找到了numpy random.seed值,它为第一次绘制产生了相同的数字,但是从第二次绘制开始,它完全不同.我正在绘制多变量法则达20,000次,所以我不想只保存matlab绘制并用Python读取它.如果有任何其他方式,我想我必须这样做.请告诉我.

-Joon

python matlab numpy scipy

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

Python和C交互-回调函数

我正在为我的一个研究项目制作Mac OS的按键记录器。我有一个C代码,它将捕获击键并将其写入文本文件。(以下代码我取出了一些不重要的东西)

我现在需要做的就像PyHook一样,而不是将数据写入文本文件,而是将Python回调函数传递给C代码,并使它将键输入传递回Python,因此我可以使用Python进行必要的分析。

我一直在寻找方法,但老实说,我不知道该如何处理,因为我不习惯C编程或Python扩展。任何帮助将不胜感激。

#include <Carbon/Carbon.h>
#include <ApplicationServices/ApplicationServices.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/time.h>

#define NUM_RECORDING_EVENT_TYPES 5
#define RECORD 0
#define MOUSEACTION 0
#define KEYSTROKE 1
// maximum expected line length, for fgets
#define LINE_LENGTH 80
#define kShowMouse TRUE

OSStatus RUIRecordingEventOccurred(EventHandlerCallRef nextHandler, EventRef theEvent, void *userData);

void prepareToRecord(); // install the event handler, wait for record signal

// note that keyboard character codes are found in Figure C2 of the document
// Inside Macintosh: Text available from http://developer.apple.com
char * …
Run Code Online (Sandbox Code Playgroud)

c python

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

SWIG将参数传递给python回调函数

所以我差不多完成了.现在我有工作代码调用python回调函数.

我现在唯一需要的是如何将参数传递给python回调函数.

我的callback.c是:

#include <stdio.h>

typedef void (*CALLBACK)(void);
CALLBACK my_callback = 0;

void set_callback(CALLBACK c);
void test(void);

void set_callback(CALLBACK c) {
  my_callback = c;
}

void test(void) {
  printf("Testing the callback function\n");
  if (my_callback) (*my_callback)();
  else printf("No callback registered\n");
}
Run Code Online (Sandbox Code Playgroud)

我的callback.i是:

// An entirely different mechanism for handling a callback

%module callback
%{
typedef void (*CALLBACK)(void);
extern CALLBACK my_callback;

extern void set_callback(CALLBACK c);
extern void my_set_callback(PyObject *PyFunc);

extern void test(void);
%}

extern CALLBACK my_callback;

extern void set_callback(CALLBACK c);
extern void …
Run Code Online (Sandbox Code Playgroud)

python swig callback

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

Emacs在第一模式中复制组织模式的M-RET功能

org-mode,M-RET标题末尾的输入将在新行上创建相同级别的新标题.我可以复制此功能rst-mode(尤其是列表)吗?目前M-RET尚未定义,如果我可以按下M-RETrst-mode智能地添加另一个列表标题将会很棒.例如,

- Item1 <M-RET>
Run Code Online (Sandbox Code Playgroud)

呈现

- Item1
- 
Run Code Online (Sandbox Code Playgroud)

自动.

emacs restructuredtext org-mode

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