Listelerden önce liste listesi daha önce yayınlanmıştır, ancak çalışmakta olduğum python ortamı tüm yöntemleri ve sınıfları tam olarak bütünleyemez. Ben de pandaları ithal edemem.Çok sayıda liste listesinin hızlı bir şekilde karşılaştırılması
Listeleri büyük bir liste içinde karşılaştırmaya çalışıyorum ve büyük listedeki diğer tüm listelere yaklaşık olarak karşılık gelen yaklaşık 8-10 liste buluyorum.
Büyük listede < 50 listesi varsa iyi çalıştığım yaklaşım. Bununla birlikte, en az 20k listelerini ve ideal olarak 1 milyonu + karşılaştırmaya çalışıyorum. Şu anda itertools'a bakıyorum. Büyük veri kümeleri için numpy veya pandalar kullanmadan en hızlı ve en verimli yaklaşım hangisi olabilir?
Bazı yöntem ve sınıfları numpy cinsinden kullanabilirim, ancak hepsini değil. Ne amaçlayan olduğunuz bir kümelenme operasyondur gibi Örneğin, numpy.allclose ve numpy.all düzgün çalışmaz ve bu çünkü çalışıyorum ortamının olduğunu.
global rel_tol, avg_lists
rel_tol=.1
avg_lists=[]
#compare the lists in the big list and output ~8-10 lists that approximate the all the lists in the big list
for j in range(len(big_list)):
for k in range(len(big_list)):
array1=np.array(big_list[j])
array2=np.array(big_list[k])
if j!=k:
#if j is not k:
diff=np.subtract(array1, array2)
abs_diff=np.absolute(diff)
#cannot use numpy.allclose
#if the deviation for the largest value in the array is < 10%
if np.amax(abs_diff)<= rel_tol and big_list[k] not in avg_lists:
cntr+=1
avg_lists.append(big_list[k])
Numpy'yi kullanamaz mısın? Yapamayacağınızı söylüyorsunuz, ama kodunuzun numpy kullanıyormuş gibi gözüküyor! – wnnmaw
'j k değil k' ile bir hatadır. 'J! = K' kullanın. plane_array1 nedir? – Daniel
OP'de belirtildiği gibi, "tüm yöntemleri ve sınıfları tam olarak bütünleştiremiyorum". Bazı numpy yöntemlerini ve sınıflarını kullanabilirim ama hepsini değil. Yorumlardan birinde 'numpy.allclose' – webmaker