如何分析在函数内部调用的对象的方法?我%lprun
在 jupyter 笔记本中使用魔法。请参阅以下ex.py
示例文件:
class foo():
def __init__(self, a=0, n=1):
self.a=a
self.n=n
def compute(self):
result = 0
for i in range(self.n):
result += self.a
return result
def my_func():
a = 1
n = 1000
my_foo = foo(a, n)
result = my_foo.compute()
print(result)
Run Code Online (Sandbox Code Playgroud)
然后,从我的 jupyter 笔记本,我可以分析my_func
:
from ex import my_func
%lprun -f my_func my_func()
Run Code Online (Sandbox Code Playgroud)
但我无法描述我的compute
方法:
from ex import my_func
%lprun -f my_foo.compute my_func()
Run Code Online (Sandbox Code Playgroud)
我想要的甚至可能吗?我必须如何在-f
参数中填充类方法才能使其工作?
根据文档,“cProfile 只对显式函数调用进行次数,而不是由于语法而调用的特殊方法”,......所以它应该可以工作。
我发现的一个(可能)相关问题是here。
我正在为其中一个开源项目学习 JSON Schema。有一个关于将已经定义的模式与一些附加关键字相结合的问题。
假设我已经定义了一些可以通过参考获得的模式,例如#/definitions/positiveInteger
.
现在我想引用该类型并使用其他几个关键字对其进行扩展。例如,我想添加enum
or description
。
是否允许这样做:
{
"$ref" : "#/definitions/positiveInteger",
"description" : "This is positive integer with enums",
"enum" : [ 2, 4, 6, 8 ]
}
Run Code Online (Sandbox Code Playgroud)
或者我必须这样做:
{
"allOf" : [ { "$ref" : "#/definitions/positiveInteger" } ],
"description" : "This is positive integer with enums",
"enum" : [ 2, 4, 6, 8 ]
}
Run Code Online (Sandbox Code Playgroud)
我找不到这方面的正式参考,也不确定验证工具会如何反应。
基本上我在这里有两个问题:
enum
在第一种情况下,验证关键字是否应该起作用?description
next to $ref
like 这样的元数据关键字,会不会有任何冲突?我实际上更喜欢内联$ref
s 而不是将它们包含在allOf
和种类中,但不确定这是否合法。我什至找不到$ref
规范中的描述(只有几个例子)。
我有以 3D numpy 数组(纪元 * 通道 * 时间点)形式出现的 EEG 数据。时间点是一个包含每个采样时间点的 256 个元素数组(总共 1 秒,频率为 256Hz)。epoch 是一个实验性的试验。
我正在尝试将 numpy 数组导入 Python-MNE ( http://martinos.org/mne/stable/mne-python.html ) 理解的表单中,但我遇到了一些麻烦
首先,我不确定是否应该将这些原始数据作为 RawArray 或 EpochsArray 导入。我用这个尝试了后者:
ch_names = list containing my 64 eeg channel names
allData = 3d numpy array as described above
info = mne.create_info(ch_names, 256, ch_types='eeg')
event_id = 1
#I got this from a tutorial but really unsure what it does and I think this may be the problem
events = np.array([200, event_id]) #I got …
Run Code Online (Sandbox Code Playgroud) 我需要标记我的y轴,以便它首先显示"Power"一词,然后是方括号中的表达式:[micro Volt square].
我可以生成我想要的整个标签的单个部分,但是当我想要将它们组合时我会遇到问题:
x <- 1:10; y <- 10:1; z <- data.frame(x,y)
g <- ggplot(z, aes(x,y) + geom_bar(stat='identity')
g + ylab('Power') # No problem
g + ylab(paste('Power [', ']')) #No problem
g + ylab(expression(mu)) # No problem
g + ylab(expression(V^2)) # No problem
Run Code Online (Sandbox Code Playgroud)
但是,这似乎不可能:
g + ylab(paste('Power [', expression(mu), expression(V^2), ']'))
Run Code Online (Sandbox Code Playgroud)
输出不评估表达式(mu和V ^ 2):
我哪里错了?paste()命令一般是错误的方法吗?我还看了一下unicode字符(ggplot2 PDF输出中的Unicode字符)......但是这仍然会让我想到如何充分结合所有单个术语.
非常感谢您的帮助!
在 JSON 模式中,可以要求对象中的某些键,请参阅此示例,取自json 模式文档:
{
"type": "object",
"properties": {
"name": { "type": "string" },
"email": { "type": "string" },
"address": { "type": "string" },
"telephone": { "type": "string" }
},
"required": ["name", "email"]
}
Run Code Online (Sandbox Code Playgroud)
我需要相反的东西:有没有办法禁止或阻止某个键出现在对象中?具体来说,我想防止用户在对象内拥有空键:
{
"": "some string value"
}
Run Code Online (Sandbox Code Playgroud) 我正在使用名为 Gtec.NAUTILUS 的 EEG 检测套件,它为我提供 500hz 下 32 个通道的二进制数据。然后数据将转换为 CSV 格式。现在我想使用 python 3.5.1 在 Microsoft Azure 中处理这些数据,但是 MNE 库(用于 EEG 数据分析)无法识别 CSV 文件。MNE 还支持其他格式。( .cnt 、 .edf 、 .bdf 、 .egi 、 .set )其他信息@: http: //martinos.org/mne/stable/manual/io.html#ch-convert
我的主要问题是;- 如何将 csv 文件转换为支持的格式之一?
另外;- 如何将二进制文件转换为 mne 支持的格式之一?(如果上一个问题不可能)
还; - 有人有处理脑电图数据的经验吗?我在数据处理时犯了一个重大错误吗?
注意:我正在 MATLAB 中执行此过程以进行脑电图数据分析,但似乎 microsoft azure 不支持它。因此我正在尝试学习 python 以实现兼容性。
提前致谢。
对于那些有兴趣的人:
来自第三方开发商的免费程序: http: //www.biosemi.com/download.htm
我有一个以radius=1
为中心的球体origin=(0, 0, 0)
。在这个领域,我有几点我知道的(见图)。现在我想根据这个规则找到新的点:
通过平分球面上两点之间的距离得到一个新点。
在这个例子中(见图),我们可以假设我想找到“FT7”和“FCz”之间的中点。我有“FT7”和“FCz”的 xyz(和球面)坐标。
根据我之前的研究,这可能涉及计算大圆距离……然后找到所得弧上的中点。但我什至不知道如何做到这一点,也不知道这是否是正确的方法。
最后,这个问题可能在某些数学网站上更合适地提出,但我希望有一种计算和直观的方法来解决这个问题。