Я пытаюсь написать код, который сравнивает два массива ('a' и 'b)' и делает что-то подобное, получая массив 'c':
a = [1, 2 , 2, 3, 3, 5]
b = [1, 2, 3] (случайно взято из 'a')
c = [2, 3, 5 ]
У меня очень простая проблема, так как алгоритм в порядке. Я использую код:
vetor1 = [1, 2, 2, 3, 3, 5]
vetor2 = sorted(random.sample(vetor1, 3))
inter = np.intersect1d(vetor1, vetor2)
cont_array2 = []
for i in range(len(inter)):
cont2 = 0
for j in range(len(vetor2)):
if inter[i]==vetor2[j]:
cont2 = cont2 + 1
cont_array2.append(cont2)
cont_array1 = []
for i in range(0,len(inter),1):
cont1 = 0
for j in range(0, len(vetor1), 1):
if inter[i]==vetor1[j]:
cont1 = cont1 + 1
cont_array1.append(cont1)
n_elements = np.subtract(cont_array1, cont_array2)
vetor2_1 = []
for i in range(len(n_elements)):
if n_elements[i]!=0:
vetor2_1.append(inter[i]*np.ones(n_elements[i]))
vetor2_2 = []
for data1 in vetor1:
if data1 not in inter:
vetor2_2.append(data1)
vetor3 = sorted(vetor2_1 + vetor2_2)
print(vetor3)
Результат, который я получаю:
[array([2.]), array([3.]), 5]
Я полагаю, что проблема в:
vetor2_1.append(inter[i]*np.ones(n_elements[i]))
Потому что:
print(vetor2_1)
Дает мне:
[array([2.]), array([3.])]
Что мне делать, поскольку я не получаю ответ [2, 3, 5]?