Numpy: genfromtxt tidak akan membongkar jika dtype = Tidak Ada

Dibuat pada 21 Feb 2014  ·  6Komentar  ·  Sumber: numpy/numpy

Tidak yakin apakah ini bug atau fitur tetapi jika saya menggunakan:

f_data = np.genfromtxt('file.dat', dtype=None, unpack=True)

di mana file.dat adalah file data standar dengan beberapa kolom (yaitu: http://pastebin.com/ihEW2dxS) hasilnya tidak dialihkan seperti yang diharapkan setelah menetapkan unpack=True .

Misalnya, baris f_data = np.loadtxt('file.dat', unpack=True) berfungsi seperti yang diharapkan.

00 - Bug numpy.lib good first issue

Komentar yang paling membantu

Saya juga mengalami ini. loadtxt sedikit lebih pintar:

if unpack:
        if len(dtype_types) > 1:
            # For structured arrays, return an array for each field.
            return [X[field] for field in dtype.names]
        else:
            return X.T

Mengapa genfromtxt tidak melakukan ini?

Semua 6 komentar

Sepertinya bug, menandainya hingga diinformasikan sebaliknya.

Saya menyelidiki ini sedikit.

Hasil dari kode @ Gabriel-p adalah array flex bentuk (12,). Kode memanggil output.T di atasnya, tetapi karena ini satu dimensi, ini adalah no-op.

Masalah terbesar yang ditentukan dtype=None bahwa itu akan menjadi array fleksibel. Setiap kolom memiliki tipe kesimpulan terpisah. Jika kita benar-benar mengubah urutan hasil ini, setiap baris harus memiliki tipe yang terpisah. AFAIK, satu-satunya cara untuk melakukannya adalah memiliki daftar atau tuple array yang homogen.

Karena numCols << numRows dalam file teks, menggunakan list atau tuple seharusnya tidak menjadi masalah besar. Jika diimplementasikan seperti itu, itu akan membongkar untuk x, y, z = np.genfromtxt(...) seperti yang ditentukan dalam dokumen, dan menyelesaikan kasus @ Gabriel-p.

Namun, genfromtxt sudah melebihi 600 baris. Ada pemikiran?

Baru saja digigit oleh ini juga. Saya membuat kasus uji, lihat

https://github.com/hsgg/numpy.git

Saya juga mengalami ini. loadtxt sedikit lebih pintar:

if unpack:
        if len(dtype_types) > 1:
            # For structured arrays, return an array for each field.
            return [X[field] for field in dtype.names]
        else:
            return X.T

Mengapa genfromtxt tidak melakukan ini?

Ada pembaruan tentang masalah ini? Sepertinya itu belum berubah sejak 2014.

Saran @ moi90 yang dibuat beberapa tahun lalu benar. genfromtxt harus melakukan hal yang sama seperti loadtxt .

Menurut saya ini akan mudah untuk diperbaiki, jadi saya telah menandai masalah tersebut sebagai "masalah pertama yang baik".

Apakah halaman ini membantu?
0 / 5 - 0 peringkat