看起来如果它是相同的分布,从中抽取随机样本numpy.random比从中做出更快scipy.stats.-.rvs.我想知道是什么原因导致两者之间的速度差异?
如果有更简单的方法将类属性分配给方法本地命名空间,我一直想知道.例如,在dosomething方法中,我明确地引用self.a和self.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) 我正在进行一些循环密集型计算并将代码转换为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,我想知道是否有任何我可以做的事情来使它更快.
我刚开始尝试使用PyCharm,虽然非常好,但我发现调试器中的交互式控制台(可以通过断点处的"显示Python提示符"激活)速度非常慢.如果我继续按下输入,例如,在2-3次尝试之后,我必须等待几秒钟才能显示下一个提示.
这是一种常见的经历吗?我用一台非常快的机器运行Pycharm(使用i7-3770 CPU),所以我想知道是不是有问题.
我是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) 有没有办法将SPSS数据集导入Python,最好是NumPy重新格式?我环顾四周但找不到任何答案.
俊
我想知道是否有可能用NumPy精确地重现MATLAB的randn()的整个序列.我使用Python/Numpy编写了我自己的例程,并且它给了我一些与其他人所做的MATLAB代码不同的结果,并且由于不同的随机抽取,我很难找到它的来源.
我找到了numpy random.seed值,它为第一次绘制产生了相同的数字,但是从第二次绘制开始,它完全不同.我正在绘制多变量法则达20,000次,所以我不想只保存matlab绘制并用Python读取它.如果有任何其他方式,我想我必须这样做.请告诉我.
-Joon
我正在为我的一个研究项目制作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) 所以我差不多完成了.现在我有工作代码调用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) 在org-mode,M-RET标题末尾的输入将在新行上创建相同级别的新标题.我可以复制此功能rst-mode(尤其是列表)吗?目前M-RET尚未定义,如果我可以按下M-RET并rst-mode智能地添加另一个列表标题将会很棒.例如,
- Item1 <M-RET>
Run Code Online (Sandbox Code Playgroud)
呈现
- Item1
-
Run Code Online (Sandbox Code Playgroud)
自动.