i = 2
feature_vector_set = []
while i < 2405 - 2:
j = 2
while j < 1200 - 2:
block = diff_image[i-2:i+3, j-2:j+3]
feature = block.flatten()
feature_vector_set.append(feature)
j = j+1
i = i+1
diff_image为int16,形状为(2405,1200) 整个循环需要40分钟才能运行,主要是由以下几行引起的:
feature_vector_set.append(feature)
是否有其他方法可以达到相同的结果?
答案 0 :(得分:0)
如果要追加很多元素,列表就不适合它。
尝试使用双端队列。它是python集合的一部分,内部使用了双向链表。
from collections import deque
i = 2
feature_vector_set = deque()
while i < 2405 - 2:
j = 2
while j < 1200 - 2:
block = diff_image[i-2:i+3, j-2:j+3]
feature = block.flatten()
feature_vector_set.append(feature)
j = j+1
i = I+1
feature_vector_list = list(feature_vector_set)
您可以找到针对python数据类型here
的常见操作的时间复杂性