我是python(3.6)的新手,目前用于科学数据分析。我使用了搜索功能,但由于我不确定用于描述此类排序的术语,因此无法找到任何有用的信息。 我有一个numpy数组,其值从0到40,000,000,长度约为4,000,000(list_a)。我还有一个长度相同的第二个数组,其值介于0-1000(list_b)之间,对应于第一个数组。我希望用list_a中的值创建一个新的numpy数组(list_c),它们在list_b中的定义时间门之外具有相应的值。
import numpy as np
def function(list_a,list_b,timegate=(0,200)):
list_c = np.array([])
for x in range(len(list_a)):
if list_a[x] in range (timegate[0],timegate[1]):
list_c=np.append(list_c, list_b[x])
return list_c
我编写了这个函数,它适用于更小的长度数组,但是随着数组变长,它会大大减慢。我正在寻找一种方法来加快这个过程,如果可能的话,任何帮助将不胜感激。
谢谢,
约旦
答案 0 :(得分:0)
您可以轻松地对您的操作进行矢量化:
def function(a, b, gate=(0, 200)):
return b[(a >= gate[0]) & (a <= gate[1])]