小编Ada*_*lis的帖子

Optimising Python dictionary access code

Question:

I've profiled my Python program to death, and there is one function that is slowing everything down. It uses Python dictionaries heavily, so I may not have used them in the best way. If I can't get it running faster, I will have to re-write it in C++, so is there anyone who can help me optimise it in Python?

I hope I've given the right sort of explanation, and that you can make some sense of my code! …

python optimization dictionary sparse-matrix

59
推荐指数
2
解决办法
3211
查看次数

用于大量数据的Javascript图表库

有谁知道可以处理庞大数据集的Javascript图表库?

"巨大",我的意思是绘制一个大约1,000行和25,000个数据点的折线图.(每行的点数分布不均匀.很多行的点数很少,但有些点数最多为4,000.)这是一个示例数据文件.

目前我正在使用Highcharts,但是在绘制示例文件方面它太慢了.这是我的测试网站,使用Highcharts绘制示例数据文件.警告:转到该页面会耗尽您的处理器一段时间:)

我不想使用Flash或Silverlight.

我希望使用Javascript,以便我的用户可以缩放+平移图表,并打开/关闭线等.但如果这是任何Javascript图表库处理的数据太多,那么我将不得不图服务器端.

javascript charts dataset

26
推荐指数
3
解决办法
2万
查看次数

计算Python字典中的冲突

我第一次在这里发帖,所以希望我以正确的方式问我的问题,

将元素添加到Python字典后,是否可以让Python告诉您添加该元素是否导致了冲突?(在找到放置元素的位置之前,碰撞解决策略探测了多少个位置?)

我的问题是:我使用字典作为更大项目的一部分,经过大量的分析后,我发现代码中最慢的部分是处理使用字典实现的稀疏距离矩阵.

我正在使用的键是Python对象的ID,它们是唯一的整数,所以我知道它们都散列为不同的值.但是将它们放在字典中仍然可能导致原则上的冲突.我不相信字典冲突会减慢我的程序速度,但我想从我的查询中删除它们.

因此,例如,给出以下字典:

d = {}
for i in xrange(15000):
    d[random.randint(15000000, 18000000)] = 0
Run Code Online (Sandbox Code Playgroud)

你能让Python告诉你创建它时发生了多少次碰撞吗?

我的实际代码与应用程序纠缠在一起,但上面的代码生成了一个与我正在使用的字典非常相似的字典.

重复:我不认为碰撞会减慢我的代码速度,我只是想通过显示我的字典没有多次碰撞来消除这种可能性.

谢谢你的帮助.

编辑:实现@Winston Ewert解决方案的一些代码:

n = 1500
global collision_count
collision_count = 0

class Foo():

    def __eq__(self, other):
        global collision_count
        collision_count += 1
        return id(self) == id(other)

    def __hash__(self):
        #return id(self) # @John Machin: yes, I know!
        return 1

objects = [Foo() for i in xrange(n)]

d = {}
for o in objects:
    d[o] = 1

print collision_count
Run Code Online (Sandbox Code Playgroud)

请注意,当您__eq__在类上定义时,TypeError: …

python optimization dictionary

15
推荐指数
2
解决办法
6234
查看次数

从OpenGL C程序生成视频

我有一个运行科学模拟的C程序,并在OpenGL窗口中显示可视化.我希望将此可视化转换为视频,最终将在YouTube上播放.

问题:从C/OpenGL程序制作视频的最佳方法是什么?

我过去的方式是使用屏幕捕获程序,但这是非常耗费人力的(必须启动/停止屏幕捕获程序,保存视频文件等等).似乎应该有一种方法可以自动化从C程序中制作视频的过程.然后,我可以让它在一夜之间运行,并在早上有20个视频可以浏览,并选择最适合放在YouTube上的视频.

YouTube 推荐 "640x480分辨率的MPEG4(Divx,Xvid)格式".

我正在使用GLUT 3.7.6_3,如果这有所不同.如果有充分的理由,我可以改变窗口系统.

我正在运行Windows(XP),所以更喜欢在Windows上运行的答案,但Linux的答案也可以.如果在Windows上无法轻松完成视频内容,我可以使用Linux.我有一个朋友为视频的每一帧制作.png图像,然后在Linux上使用"mencoder"将它们拼接在一起.

c windows opengl video

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