当我使用IPython在Python中进行调试时,我有时会遇到一个断点,我想检查一个当前是生成器的变量.我能想到的最简单的方法就是将它转换为一个列表,但我不清楚在一行中这样做的简单方法是什么ipdb,因为我对Python很新.
我想为我的应用程序进行一些单元测试,我需要比较两个数组.由于array.__eq__返回一个新数组(因此TestCase.assertEqual失败),断言相等的最佳方法是什么?
目前我正在使用
self.assertTrue((arr1 == arr2).all())
Run Code Online (Sandbox Code Playgroud)
但我真的不喜欢它
我正在尝试创建一个结构数组,其中每个结构代表一个天体,用于解决我正在课堂上工作的问题.我没有那么多结构体验,这就是为什么我决定尝试使用它们而不是一大堆数组,但是,我继续遇到许多不同的错误,即使我试图实现这些技术我已经在各种线程和stackoverflow上看到过(例如在C和C中的结构数组 - 初始化结构数组),但并非所有这些都适用,所以我无法完全复制的方式做它.在我向您展示我正在尝试做的事情之前,只需要预先警告,因为我已经醒了很长时间,因此我需要睡觉几个小时才能回复评论/问题/答案.我真的很抱歉,但是在忙碌了一天并且已经解决了这个问题好几个小时之后我真的很累.
对于那些已经阅读过这一点的人的进一步信息:我不需要任何这些是动态的,我知道/事先确定一切的大小.我还需要这个全局数组(喘气 GLOBAL VARIABLES),因为我在几个不同的方法中访问它,这些方法已经定义了参数(即GLUT方法).
这就是我在标题中定义结构的方式:
struct body
{
double p[3];//position
double v[3];//velocity
double a[3];//acceleration
double radius;
double mass;
};
Run Code Online (Sandbox Code Playgroud)
在定义结构内部之前,我有一个其他全局变量的列表,其中一个是这个结构的数组(基本上,如果我在模糊的说话中太不清楚,下面这一行高于上面的东西):
struct body bodies[n];
Run Code Online (Sandbox Code Playgroud)
只是你知道,n这是我合法定义的东西(即#define n 1).
我在几个不同的方法中使用这个数组,但最容易和最少占用空间的是我的main的简化形式,我初始化每个结构中的所有变量,只是为了在我修改它们之前设置变量办法:
int a, b;
for(a = 0; a < n; a++)
{
for(b = 0; b < 3; b++)
{
bodies[a].p[b] = 0;
bodies[a].v[b] = 0;
bodies[a].a[b] = 0;
}
bodies[a].mass = 0;
bodies[a].radius = 1.0;
}
Run Code Online (Sandbox Code Playgroud)
我正面临的当前错误是nbody.c:32:13: error: array type …
我目前正在评估不同的python绘图库.现在我正在尝试使用matplotlib,我对性能非常失望.以下示例是从SciPy示例中修改的,并且每秒仅给出~8帧!
有什么方法可以加快速度,或者我应该选择不同的绘图库?
from pylab import *
import time
ion()
fig = figure()
ax1 = fig.add_subplot(611)
ax2 = fig.add_subplot(612)
ax3 = fig.add_subplot(613)
ax4 = fig.add_subplot(614)
ax5 = fig.add_subplot(615)
ax6 = fig.add_subplot(616)
x = arange(0,2*pi,0.01)
y = sin(x)
line1, = ax1.plot(x, y, 'r-')
line2, = ax2.plot(x, y, 'g-')
line3, = ax3.plot(x, y, 'y-')
line4, = ax4.plot(x, y, 'm-')
line5, = ax5.plot(x, y, 'k-')
line6, = ax6.plot(x, y, 'p-')
# turn off interactive plotting - speeds things up by 1 Frame …Run Code Online (Sandbox Code Playgroud) 是否有可能创建一个非守护进程的python池?我希望一个池能够调用一个内部有另一个池的函数.
我想要这个,因为deamon进程无法创建进程.具体来说,它会导致错误:
AssertionError: daemonic processes are not allowed to have children
Run Code Online (Sandbox Code Playgroud)
例如,考虑function_a具有运行的池的场景,该池具有运行function_b的池function_c.此函数链将失败,因为function_b正在守护进程中运行,并且守护进程无法创建进程.
我正在为正确的RDoc语法寻找一个好的,可靠的参考.建议?我似乎无法找到任何清楚显示的内容:
我试着阅读http://docs.python.org/dev/library/multiprocessing.html上的文档,但我仍然在努力处理多处理队列,池和锁定.现在我能够构建下面的示例.
关于队列和池,我不确定我是否以正确的方式理解了这个概念,所以如果我错了,请纠正我.我想要实现的是在时间处理2个请求(在这个例子中数据列表有8个)所以,我应该使用什么?池创建2个进程,可以处理两个不同的队列(最多2个)或者我应该只使用Queue每次处理2个输入?锁定将正确打印输出.
import multiprocessing
import time
data = (['a', '2'], ['b', '4'], ['c', '6'], ['d', '8'],
['e', '1'], ['f', '3'], ['g', '5'], ['h', '7']
)
def mp_handler(var1):
for indata in var1:
p = multiprocessing.Process(target=mp_worker, args=(indata[0], indata[1]))
p.start()
def mp_worker(inputs, the_time):
print " Processs %s\tWaiting %s seconds" % (inputs, the_time)
time.sleep(int(the_time))
print " Process %s\tDONE" % inputs
if __name__ == '__main__':
mp_handler(data)
Run Code Online (Sandbox Code Playgroud) 如何为此Seaborne图添加标题?让我们给它一个标题'我是一个标题'.
tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, col="sex", row="smoker", margin_titles=True)
g.map(sns.plt.scatter, "total_bill", "tip")
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取Numpy数组中最大元素的索引.这可以使用numpy.argmax.我的问题是,我想找到整个数组中最大的元素并获得它的索引.
numpy.argmax 可以沿着一个轴应用,这不是我想要的,也可以应用在扁平数组上,这是我想要的.
我的问题是当我想要多维索引时,使用numpy.argmaxwith axis=None返回平面索引.
我可以divmod用来得到一个非平坦的索引,但这感觉很难看.有没有更好的方法呢?
我无法理解d3.call()如何工作以及何时何地使用它.这是我正在尝试完成的教程链接.
有人可以具体解释一下这件作品是做什么的
var xAxis = d3.svg.axis()
.scale(xScale)
.orient("bottom");
svg.append("g").call(xAxis);
Run Code Online (Sandbox Code Playgroud) python ×7
numpy ×2
arrays ×1
c ×1
d3.js ×1
generator ×1
ipdb ×1
javascript ×1
matplotlib ×1
pool ×1
python-2.7 ×1
rdoc ×1
ruby ×1
seaborn ×1
struct ×1
unit-testing ×1