Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 同时迭代字典和numpy数组_Python_Arrays_Dictionary_Numpy - Fatal编程技术网

Python 同时迭代字典和numpy数组

Python 同时迭代字典和numpy数组,python,arrays,dictionary,numpy,Python,Arrays,Dictionary,Numpy,是否有一种灵活的方法可以遍历对象字典,调用每个对象的成员函数并将值赋给numpy数组。我有以下成员功能代码: # Preallocate for Number of Objects in the dictionary newTable = numpy.zeros( self.numObj ); for item, nt in zip( self.dictTable.values(), newTable ): dt = item.CalculateDuty

是否有一种灵活的方法可以遍历对象字典,调用每个对象的成员函数并将值赋给numpy数组。我有以下成员功能代码:

    # Preallocate for Number of Objects in the dictionary
    newTable = numpy.zeros( self.numObj );

    for item, nt in zip( self.dictTable.values(), newTable ):
        dt = item.CalculateDutyCycle() * 100.0


    return newTable    

这不会运行,因为我对numpy数组的赋值没有正确完成。我可以使用nditer正确地完成它,但不确定如何将迭代器与字典表迭代结合起来。我正在避免使用传统的“计数器”增量来访问阵列,因为有一种更优雅的“pythonic”解决方案。

如果使用
enumerate
,则不必显式增加计数器。你可以这样做:

newTable = numpy.zeros( self.numObj )
for k, item in enumerate(self.dictTable.values()):
    newTable[k] = item.CalculateDutyCycle() * 100.0

如果使用
枚举
,则不必显式递增计数器。你可以这样做:

newTable = numpy.zeros( self.numObj )
for k, item in enumerate(self.dictTable.values()):
    newTable[k] = item.CalculateDutyCycle() * 100.0

在这里使用
numpy
没有任何好处,因为您正在迭代一个常规的Python列表(values())。我只是做一个列表理解,然后把它转换成一个数组。你的阵型也是1d<代码>numpy在处理多维对象(与简单列表相反)时会发光


在这里使用
numpy
没有任何好处,因为您正在迭代一个常规的Python列表(values())。我只是做一个列表理解,然后把它转换成一个数组。你的阵型也是1d<代码>numpy在处理多维对象(与简单列表相反)时会发光


避免显式计数器的python方法是
enumerate
。但是字典项的枚举顺序是不确定的。避免显式计数器的python方法是
enumerate
。但字典项的枚举顺序是不确定的。