Я уже задавал вариант этого вопроса, но у меня все еще есть проблема, касающаяся времени выполнения моего кода.
Дан простой массив, состоящий из 15000 строк и 44 столбцов. Моя цель - выяснить, какие строки равны, и добавить их в список, например:
1 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
1 0 0 0 0
1 2 3 4 5
Результат:
equal_rows1 = [1,2,3]
equal_rows2 = [0,4]
То, что я делал до сих пор, использует следующий код:
import numpy as np
input_data = np.load('IN.npy')
equal_inputs1 = []
equal_inputs2 = []
for i in range(len(input_data)):
for j in range(i+1,len(input_data)):
if np.array_equal(input_data[i],input_data[j]):
equal_inputs1.append(i)
equal_inputs2.append(j)
Проблема в том, что для возврата желаемых массивов требуется много времени, и это позволяет использовать только 2 разных «одинаковых списка строк», хотя их может быть больше. Есть ли лучшее решение для этого, особенно в отношении времени выполнения?