我正在使用一个非常简单的代码来为for语句中的每个循环计时.它看起来像这样:
import time
for item in list_of_files:
# Start timing this loop.
start = time.clock()
# Do a bunch of stuff.
# Get time elapsed in seconds.
elapsed = time.clock() - start
# Get minutes and seconds.
m, s = divmod(elapsed, 60)
# Print result.
print 'End of analysis for %s in %dm %02ds.\n'% (item, m, s)
Run Code Online (Sandbox Code Playgroud)
这大部分时间会产生正确的输出,9m 52s但有时会出现大的循环(需要一些时间),我会得到负面结果-53m 17s.
我无法确定一个明确的限制,其中结果开始显示为负值,但它显然只发生在> 20分钟的经过时间,但不是每个花费超过20分钟的循环(即:它不一致).
我的代码中有什么东西可以计算导致这种情况的每个循环吗?
我正在使用Spyder我的IDE.我比较了time.clock()表现得如何time.time(),这就是我所看到的:
>>> …Run Code Online (Sandbox Code Playgroud) 这是MWE我正在使用的更大的代码.基本上,它针对位于特定阈值以下的所有值对KDE(内核密度估计)执行蒙特卡洛积分(在该问题上建议积分方法BTW:积分2D核密度估计).
import numpy as np
from scipy import stats
import time
# Generate some random two-dimensional data:
def measure(n):
"Measurement model, return two coupled measurements."
m1 = np.random.normal(size=n)
m2 = np.random.normal(scale=0.5, size=n)
return m1+m2, m1-m2
# Get data.
m1, m2 = measure(20000)
# Define limits.
xmin = m1.min()
xmax = m1.max()
ymin = m2.min()
ymax = m2.max()
# Perform a kernel density estimate on the data.
x, y = np.mgrid[xmin:xmax:100j, ymin:ymax:100j]
values = np.vstack([m1, …Run Code Online (Sandbox Code Playgroud) 我发现自己需要迭代一个由字典组成的列表,我需要,每次迭代,我正在迭代的字典的名称.
这是一个MWE(这个例子的内容与这个例子无关):
dict1 = {...}
dicta = {...}
dict666 = {...}
dict_list = [dict1, dicta, dict666]
for dc in dict_list:
# Insert command that should replace ???
print 'The name of the dictionary is: ', ???
Run Code Online (Sandbox Code Playgroud)
如果我只是dc在哪里使用???,它将打印字典的全部内容.如何获取正在使用的字典的名称?
我使用直接卷积算法来计算此图像之间的卷积:
而这个内核:
我正在使用astropy实现直接卷积.
这导致以下卷积,将所有设置(包括边界处理)保留为默认值,即astropy.convolution.convolve(image,kernel):
这个卷积有一些令人费解的文物.特别地,在距边缘约50个像素的偏移处存在"正方形"图案.在我看来,这是由于内核的程度; 即使内核大小正式为249x249,大多数信息显然都包含在大约100个像素的半径内 - 这意味着当内核应用于边缘时,我们可能会遇到麻烦.
这让我想到了我的问题:
我有一个奇怪的情况与scipy.stats.linregress似乎返回一个不正确的标准错误:
from scipy import stats
x = [5.05, 6.75, 3.21, 2.66]
y = [1.65, 26.5, -5.93, 7.96]
gradient, intercept, r_value, p_value, std_err = stats.linregress(x,y)
>>> gradient
5.3935773611970186
>>> intercept
-16.281127993087829
>>> r_value
0.72443514211849758
>>> r_value**2
0.52480627513624778
>>> std_err
3.6290901222878866
Run Code Online (Sandbox Code Playgroud)
Excel返回以下内容:
slope: 5.394
intercept: -16.281
rsq: 0.525
steyX: 11.696
Run Code Online (Sandbox Code Playgroud)
steyX是excel的标准误差函数,返回11.696而不是scipy的3.63.谁知道这里发生了什么?在python中获得回归的标准错误的任何替代方法,而不是去Rpy?
我正在使用以下gnuplot命令创建一个图:
#!/bin/bash
gnuplot << 'EOF'
set term postscript portrait color enhanced
set output 'out.ps'
plot 'data_file' u 3:2 w points , '' u 3:2:($4!=-3.60 ? $1:'aaa') w labels
EOF
Run Code Online (Sandbox Code Playgroud)
这里data_file看起来是这样的:
O4 -1.20 -0.33 -5.20
O9.5 -1.10 -0.30 -3.60
B0 -1.08 -0.30 -3.25
B0.5 -1.00 -0.28 -2.60
B1.5 -0.90 -0.25 -2.10
B2.5 -0.80 -0.22 -1.50
B3 -0.69 -0.20 -1.10
Run Code Online (Sandbox Code Playgroud)
我希望gnuplot 用列中找到的字符串标记所有点1,除了列4等于-3.60的那个点,在这种情况下我想要aaa字符串.什么我得到的是,$4=-3.60数据点被正确标记为aaa,但其余的没有被标记 …
当我运行django项目时,我遇到了一个奇怪的问题:
ImportError: /usr/local/lib/python2.7/site-packages/numpy/core/multiarray.so: undefined symbol: PyUnicodeUCS2_AsASCIIString
Run Code Online (Sandbox Code Playgroud)
如果II以dev模式运行此项目(python manage.py runserver 0.0.0.0:8000),则不会发生.但是当我在apache中部署这个项目时,就会出现这个问题.
在这个项目中,我使用nltk包和mongodb,而numpy是一个依赖项.我的操作系统是CentOS 6.3,我将python从2.6.6升级到2.7.3,这是我自己编译的.
按照一些说明,我使用./configure--enable-unicode = ucs2重新编译和重建python.但这似乎不起作用.
所以任何人都知道原因或解决方案?非常感谢!
我需要生成一个在两个轴上具有相同纵横比且在右侧具有颜色条的图。我尝试过设置aspect='auto'、aspect=1、 ,但aspect='equal'没有好的结果。请参阅下面的示例和 MWE。
使用aspect='auto'颜色条的高度正确,但绘图扭曲:

使用aspect=1或aspect='equal'绘图是方形的(两个轴的长宽相等),但颜色条扭曲:

在这两个图中,由于某种原因,颜色条的位置离右侧太远。如何获得具有匹配高度的颜色条的方形图?
微量元素
import numpy as np
import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt
def col_plot(params):
gs, i, data = params
xarr, yarr, zarr = zip(*data)[0], zip(*data)[1], zip(*data)[2]
xmin, xmax = min(xarr), max(xarr)
ymin, ymax = min(yarr), max(yarr)
#plt.subplot(gs[i], aspect='auto')
plt.subplot(gs[i], aspect=1)
#plt.subplot(gs[i], aspect='equal')
plt.xlim(xmin, xmax)
plt.ylim(xmin, xmax)
plt.xlabel('$x axis$', fontsize=20)
plt.ylabel('$y axis$', fontsize=20)
# Scatter plot.
cm = plt.cm.get_cmap('RdYlBu_r')
SC = plt.scatter(xarr, …Run Code Online (Sandbox Code Playgroud) 相当简单的问题.说我有一个列表,如:
a = [3, 4, 54, 8, 96, 2]
Run Code Online (Sandbox Code Playgroud)
我可以使用切片在列表中间省略一个元素来生成这样的东西吗?
a[some_slicing]
[3, 4, 8, 96, 2]
Run Code Online (Sandbox Code Playgroud)
这个元素54被遗漏了.我猜想这可以解决问题:
a[:2:]
Run Code Online (Sandbox Code Playgroud)
但结果不是我的预期:
[3, 4]
Run Code Online (Sandbox Code Playgroud) 我正在使用Sublime 3083.
假设我Ctrl-x在文件中剪切了一些text(),然后尝试将其粘贴到其他地方,在同一个文件或另一个文件中.
我将光标定位在我要粘贴文本的行上.
如果我点击Ctrl-v文字粘贴没有问题.
但是如果我不小心碰到了Ctrl-c,那么被剪切的文字就不能再粘贴了.它从剪贴板中删除,我被迫Ctrl-z回到文本被剪切之前的那一点.
即使击中时未选择任何文本,也会发生这种情况Ctrl-c.
我测试过,这种行为似乎是独家的Sublime.这是一个功能吗?如果是这样,它可以被禁用吗?
python ×8
numpy ×2
astropy ×1
colorbar ×1
conditional ×1
convolution ×1
dictionary ×1
django ×1
fft ×1
gnuplot ×1
labels ×1
matplotlib ×1
montecarlo ×1
performance ×1
plot ×1
regression ×1
scipy ×1
slice ×1
sublimetext ×1
sublimetext3 ×1
time ×1