非常慢的 numpy OR 操作
Very slow numpy OR operation
我正在对一个 numpy dtype 数组对象的大型数据集执行 OR 操作。
下面的代码是外部 FOR 循环的一部分,它遍历 15 列并检查用户名是否在这些列中可用,如果是,则标记这些行以供进一步操作。
mask= mask | (np_array[:,col_index[f"COL_{col_number}"]] == username)
mask= 与 np_array 长度相同的 Numpy 一维数组
np_array = Numpy dtype ndarray 对象
这行代码占用了我总代码时间的 60% 以上。
有什么方法可以improve/optimize 上面的代码性能?
谢谢,
丽娃
alist = [(np_array[:,col_index[f"COL_{col_number}"]] == username) for col_number in range(columns)]
这应该是所有 col_number 测试的列表
mask = np.logical_or.reduce(alist)
应该or
他们在一起。性能应该比反复 or
ing 更好。但如果 alist
构造是最慢的一步,我不会感到惊讶。
但是没有工作示例,我无法测试或计时。
我正在对一个 numpy dtype 数组对象的大型数据集执行 OR 操作。
下面的代码是外部 FOR 循环的一部分,它遍历 15 列并检查用户名是否在这些列中可用,如果是,则标记这些行以供进一步操作。
mask= mask | (np_array[:,col_index[f"COL_{col_number}"]] == username)
mask= 与 np_array 长度相同的 Numpy 一维数组 np_array = Numpy dtype ndarray 对象
这行代码占用了我总代码时间的 60% 以上。
有什么方法可以improve/optimize 上面的代码性能?
谢谢, 丽娃
alist = [(np_array[:,col_index[f"COL_{col_number}"]] == username) for col_number in range(columns)]
这应该是所有 col_number 测试的列表
mask = np.logical_or.reduce(alist)
应该or
他们在一起。性能应该比反复 or
ing 更好。但如果 alist
构造是最慢的一步,我不会感到惊讶。
但是没有工作示例,我无法测试或计时。