通过大型numpy数组进行更快的迭代

时间:2019-07-18 08:41:01

标签: arrays performance numpy

我有一些代码,其中有大量数据。然后,我必须对其进行迭代。我指出我无法更快地做到这一点。所以我在问是否有任何方法可以帮助我解决这个问题,或者我该如何加快速度。

基本上我正在获得如下所示的3D阵列:

    a=
    [[[ 70  70  71]
    [ 70  70  71]
    [ 70  70  71]
    ...,

类似于500x500

然后我正在使用

    a = numpy.assarray(a,int).tolist()

[70 70 71]-就像一个元素,我比较每个循环,所以我使用a [y] [x] [0],a [y] [x] [1],a [y] [x ] [2]使用以下方法获取这些值:

    for y in enumerate(a):
      for x in range(0,500):
        if a[y][x][0] == 70 and a[y][x][1] == 70 and a[y][x][2] == 71:
          dosomething

或者在其他方法中,我使用不带tolist()的 a = numpy.assarray(a,int),然后执行以下操作:

    for i,e in enumerate(a):
      element = numpy.asarray(["".join(row) for row in e.astype(str)],int).tolist()
      for x in range(0,len(element)):
        if element[x] == something:
          dosomething

第二种方法将给我安装3个元素的“ 707071”。有没有更快的方法可以做到这一点?

0 个答案:

没有答案