Ben numpy
deneyimli bir kullanıcı değilim, ama burada olası bir çözümdür genel soru: aksi rec_array
>>> i = iter([(1, 11), (2, 22)])
>>> i
<listiterator at 0x5b2de30> # a sample iterable of tuples
>>> rec_array = np.fromiter(i, dtype='i4,i4') # mind the dtype
>>> rec_array # rec_array is a record array
array([(1, 11), (2, 22)],
dtype=[('f0', '<i4'), ('f1', '<i4')])
>>> rec_array['f0'], rec_array[0] # each field has a default name
(array([1, 2]), (1, 11))
>>> a = rec_array.view(np.int32).reshape(-1,2) # let's create a view
>>> a
array([[ 1, 11],
[ 2, 22]])
>>> rec_array[0][1] = 23
>>> a # a is a view, not a copy!
array([[ 1, 23],
[ 2, 22]])
Ben tüm sütunlar aynı türden olduğunu kabul, ne istediğinizi zaten.
Örneğinizle ilgili olarak, örneğinizde db
'un ne olduğunu tam olarak anlayamıyorum. Bir imleç nesnesi ise, o zaman sadece fetchall
yöntemini çağırabilir ve bir tupl listesi alabilirsiniz. Çoğu durumda, veritabanı kitaplığı kısmen okunan sorgu sonucunu tutmak istemez, kodunuzun her satırı işlemesini bekler, yani execute
yönteminin ne zaman döndüğü, tüm veriler zaten bir listede saklanır ve neredeyse hiç yoktur cursor
örneğini yineleme yerine fetchall
kullanma sorunu.
bunun işe yarayıp yaramadığından emin olun: http://docs.scipy.org/doc/numpy/reference/generated/numpy.fromiter.html – Fabricator
@Fabricator Dokümantasyon, yinelenen bir * 1d * dizi oluşturduğunu söylüyor. Bu durumda 4 sütunlu bir 2d dizisi yerine bir dizi nesne yaratacaktır. – Bakuriu
'np.loadtxt', yinelenen, yani bir dosyadan bir dizi oluşturma örneğidir. Basitleştirilmiş terimlerle, bir satır okur, alt dizelerinden bir liste oluşturur ve bunu bir listeye ekler. Sonunda listelerin listesini bir diziye dönüştürür. – hpaulj