Bir CSV dosyası okurken NumPy 1.10.2 ile aşağıdaki problemi yaşadım. genfromtxt
'a açık veri türleri nasıl verileceğini anlayamıyorum. Ben olsun,NumPy: eski ve yeni veri tanımlayıcısının boyutunda uyumsuzluk
import numpy
numpy.genfromtxt('minimal.csv', names=True, dtype=(int, str))
neyse: Ben de denedim
import numpy
numpy.genfromtxt('minimal.csv', dtype=(int, str))
:
İştex,y
1,hello
2,hello
3,jello
4,jelly
5,belly
Ben genfromtxt ile okumaya çalışacak: Burada
CSVminimal.csv
olduğunu hata:
Traceback (most recent call last):
File "visualize_numpy.py", line 39, in <module>
numpy.genfromtxt('minimal.csv', dtype=(int, str))
File "/Users/xeli/workspace/myproj/env/lib/python3.5/site-packages/numpy/lib/npyio.py", line 1518, in genfromtxt
replace_space=replace_space)
File "/Users/xeli/workspace/myproj/env/lib/python3.5/site-packages/numpy/lib/_iotools.py", line 881, in easy_dtype
ndtype = np.dtype(ndtype)
ValueError: mismatch in size of old and new data-descriptor
Alternatif Denedim:
import numpy
numpy.genfromtxt('minimal.csv', dtype=[('x', int), ('y', str)])
atar Hangi:
TanıdığımTraceback (most recent call last):
File "visualize_numpy.py", line 39, in <module>
numpy.genfromtxt('minimal.csv', dtype=[('x', int), ('y', str)])
File "/Users/xeli/workspace/myproj/env/lib/python3.5/site-packages/numpy/lib/npyio.py", line 1834, in genfromtxt
rows = np.array(data, dtype=[('', _) for _ in dtype_flat])
ValueError: size of tuple must match number of fields.
dtype=None
NumPy doğru türlerini tahmin etmeye çalışır ve genellikle iyi çalışır hale getirir. Bununla birlikte, belgede bunun açık türlerden çok daha yavaş olduğu belirtilmektedir. Benim durumumda hesaplama verimliliği gereklidir, bu nedenle dtype=None
bir seçenek değildir.
Yaklaşımım veya NumPy'mle ilgili yanlış bir şey mi var?
Ben bir liste yerine bir demet olarak d_type vererek çözüldü çok benzer bir sorunu vardı ve aynı dava için de geçerlidir görünüyor. – pela