Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Cython中迭代对象列表/集合的最快方法?_Python_Cython - Fatal编程技术网

Python 在Cython中迭代对象列表/集合的最快方法?

Python 在Cython中迭代对象列表/集合的最快方法?,python,cython,Python,Cython,我有我正在建立的神经网络库的代码 for connection in self.backwardConnections: self._z += connection.value() 其中connection是cdef类连接,BackardConnections是python连接列表 我有两个问题 在Python列表中迭代最快的是什么?我也可以在len范围内使用典型的for int I。。 如果我放弃了Python列表方法,那么什么样的集合类型,例如,NUMPY数组、C++向量等可以保存

我有我正在建立的神经网络库的代码

for connection in self.backwardConnections:
    self._z += connection.value()
其中connection是cdef类连接,BackardConnections是python连接列表

我有两个问题

在Python列表中迭代最快的是什么?我也可以在len范围内使用典型的for int I。。 如果我放弃了Python列表方法,那么什么样的集合类型,例如,NUMPY数组、C++向量等可以保存我的连接对象并提高性能? 为。。。in…:构造是Python中迭代列表的最快方法。切换到其他数据类型也不会显著提高性能。这两件事已经很快了

我猜您正在以错误的方式优化此代码。与其研究循环机制,它可能只占用运行时间的一小部分,为什么不考虑优化对.value的调用呢


还有一种可能性是Python对于您要做的事情来说太慢了。不过,我发现这种情况非常罕见。

。事实上,价值是相当高的。但是等等,你知道我在赛顿做这件事吗?对于C,你是否在用这个值列表做更多的数学运算?如果是这样,你可以制作一个numpy数组,并对其进行操作。e、 g.价值观。numpy还有一个快速的nditer迭代器,它在“cython”中工作。@hpaulj事物是connection.value定义为self.weight*self.source.y,其中source是神经元,y和weight是双倍的。我基本上是建立一个网络图,使用神经元作为节点,连接作为顶点。我可以做的是有两个指向ws和ys的cpp向量指针,可以以c的速度进行迭代。