u = np.array([1.0,2.0,2.0,3.0,4.0])
v = np.array([10.0,21.0,18.0,30.0,40.0])
a = np.array([100.0,210.0,220.0,300.0,400.0])
< /code>
Если два элемента в u одинаковые, то удалите тот, который выше по значению v.
Для приведенного выше примера результат должен быть < /p>
u_new = np.array([1.0,2.0,3.0,4.0])
v_new = np.array([10.0,18.0,30.0,40.0])
a_new = np.array([100.0,220.0,300.0,400.0])
def remove_duplicates(u,v,a):
u_new, indices = np.unique(u, return_index=True)
v_new = np.zeros(len(u_new), dtype=np.float64)
a_new = np.zeros(len(u_new), dtype=np.float64)
for i in range(len(indices)):
j1 = indices[i]
if i < len(indices) - 1:
j2 = indices[i + 1]
else:
j2 = j1 + 1
v_new[i] = np.amin(v[j1:j2])
k = np.argmin(v[j1:j2]) + j1
a_new[i] = a[k]
return u_new, v_new, a_new
< /code>
Приведенный выше код имеет проблему при лечении плавающего числа, поскольку между двумя плавающими номером нет точного равенства. Так что я должен изменить его на очень «глупый» способ < /p>
def remove_duplicates(u, v, a):
u_new = u
v_new = v
a_new = a
cnt = 0
for i in range(len(u)):
if cnt 1e-5:
u_new[cnt] = u[i]
v_new[cnt] = v[i]
a_new[cnt] = a[i]
cnt += 1
else:
print("Two points with same x coord found.ignore", i)
if v_new[cnt-1] > v[i]:
v_new[cnt-1] = v[i]
a_new[cnt-1] = a[i]
return u_new[:cnt], v_new[:cnt], a_new[:cnt]
Как я могу запрограммировать это питоническим образом?
У меня есть два массива с именем u, v, e.g. [code]u = np.array([1.0,2.0,2.0,3.0,4.0]) v = np.array([10.0,21.0,18.0,30.0,40.0]) a = np.array([100.0,210.0,220.0,300.0,400.0]) < /code> Если два элемента в u одинаковые, то удалите тот, который выше по значению v. Для приведенного выше примера результат должен быть < /p> u_new = np.array([1.0,2.0,3.0,4.0]) v_new = np.array([10.0,18.0,30.0,40.0]) a_new = np.array([100.0,220.0,300.0,400.0])
def remove_duplicates(u,v,a): u_new, indices = np.unique(u, return_index=True) v_new = np.zeros(len(u_new), dtype=np.float64) a_new = np.zeros(len(u_new), dtype=np.float64) for i in range(len(indices)): j1 = indices[i] if i < len(indices) - 1: j2 = indices[i + 1] else: j2 = j1 + 1 v_new[i] = np.amin(v[j1:j2]) k = np.argmin(v[j1:j2]) + j1 a_new[i] = a[k]
return u_new, v_new, a_new < /code> Приведенный выше код имеет проблему при лечении плавающего числа, поскольку между двумя плавающими номером нет точного равенства. Так что я должен изменить его на очень «глупый» способ < /p> def remove_duplicates(u, v, a): u_new = u v_new = v a_new = a cnt = 0 for i in range(len(u)): if cnt 1e-5: u_new[cnt] = u[i] v_new[cnt] = v[i] a_new[cnt] = a[i] cnt += 1 else: print("Two points with same x coord found.ignore", i) if v_new[cnt-1] > v[i]: v_new[cnt-1] = v[i] a_new[cnt-1] = a[i]
return u_new[:cnt], v_new[:cnt], a_new[:cnt] [/code] Как я могу запрограммировать это питоническим образом?
У меня есть два арадиста. First ArrayList содержит три столбца. Код продукта, имя и количество. Этот ArrayList содержит 600 продуктов. И первоначально количество для всех продуктов составляет 0. Теперь вторые арадилисты имеют два столбца. Код...
У меня есть микроскобический набор данных изображения, и я хочу сегментировать каждую текстуру этого изображения. Я использовал модель с сегментами, чтобы сегментировать эти текстуры и строго говоря, она дает очень хорошие результаты для моего...