isi missing value dengan nilai yang ditentukan pada >>> np.genfromtxt("csv.txt", delimiter=",") array([[ 1., 2., 3.], [ 4., nan, 6.], [ 7., 8., 9.]]) 0 (defaultnya adalah >>> np.genfromtxt("csv.txt", delimiter=",") array([[ 1., 2., 3.], [ 4., nan, 6.], [ 7., 8., 9.]]) 1 untuk float, -1 untuk int)
Dengan pembatas non-spasi putih
>>> with open("csv.txt", "r") as f: .. print(f.read()) 1, 2, 3 4,, 6 7, 8, 9
>>> np.genfromtxt("csv.txt", delimiter=",", usemask=True) masked_array( data=[[1.0, 2.0, 3.0], [4.0, --, 6.0], [7.0, 8.0, 9.0]], mask=[[False, False, False], [False, True, False], [False, False, False]], fill_value=1e+20)
>>> np.genfromtxt("csv.txt", delimiter=",") array([[ 1., 2., 3.], [ 4., nan, 6.], [ 7., 8., 9.]])
>>> np.genfromtxt("csv.txt", delimiter=",", dtype=np.int8, filling_values=99) array([[ 1, 2, 3], [ 4, 99, 6], [ 7, 8, 9]], dtype=int8)
Dibatasi spasi
juga dapat mem-parsing file data yang dipisahkan spasi yang memiliki nilai yang hilang jika
Setiap bidang memiliki lebar tetap. Gunakan lebar sebagai argumen pembatas
# File dengan lebar=4. Data tidak harus dibenarkan (misalnya, # 2 di baris 1), kolom terakhir bisa kurang dari lebar (misalnya, 6 # di baris 2), dan karakter pembatas tidak diperlukan (misalnya 8888
>>> with open("fixedwidth.txt", "r") as f: .. data = (f.read()) >>> print(data) 1 2 3 44 6 7 88889 _
# Menampilkan spasi sebagai ^ >>> print(data. ganti(” “,”^”)) 1^^^2^^^^^^3 44^^^^^^6 7^^^88889
>>> np.genfromtxt("fixedwidth.txt", delimiter=4) array([[1.000e+00, 2.000e+00, 3.000e+00], [4.400e+01, nan, 6.000e+00], [7.000e+00, 8.888e+03, 9.000e+00]])
Nilai khusus (mis. g. "x") menunjukkan bidang yang hilang. Gunakan itu sebagai argumen missing_values
>>> with open("nan.txt", "r") as f: .. print(f.read()) 1 2 3 44 x 6 7 8888 9 _
>>> np.genfromtxt("nan.txt", missing_values="x") array([[1.000e+00, 2.000e+00, 3.000e+00], [4.400e+01, nan, 6.000e+00], [7.000e+00, 8.888e+03, 9.000e+00]]) _
Anda ingin melewati baris dengan nilai yang hilang. Tetapkan invalid_raise=Salah
>>> with open("skip.txt", "r") as f: .. print(f.read()) 1 2 3 44 6 7 888 9
>>> np.genfromtxt("skip.txt", invalid_raise=False) __main__:1: ConversionWarning: Some errors were detected ! Line #2 (got 2 columns instead of 3) array([[ 1., 2., 3.], [ 7., 888., 9.]])
Karakter spasi putih pembatas berbeda dengan spasi putih yang menunjukkan data yang hilang. Misalnya, jika kolom dibatasi oleh >>> np.genfromtxt("csv.txt", delimiter=",") array([[ 1., 2., 3.], [ 4., nan, 6.], [ 7., 8., 9.]]) 3, maka data yang hilang akan dikenali jika terdiri dari satu atau lebih spasi
>>> np.genfromtxt("csv.txt", delimiter=",", usemask=True) masked_array( data=[[1.0, 2.0, 3.0], [4.0, --, 6.0], [7.0, 8.0, 9.0]], mask=[[False, False, False], [False, True, False], [False, False, False]], fill_value=1e+20) 0
# Tab vs. spasi >>> cetak(data. ganti(”t”,”^”)) 1^2^3 44^ ^6 7^888^9
>>> np.genfromtxt("csv.txt", delimiter=",", usemask=True) masked_array( data=[[1.0, 2.0, 3.0], [4.0, --, 6.0], [7.0, 8.0, 9.0]], mask=[[False, False, False], [False, True, False], [False, False, False]], fill_value=1e+20) 1
Membaca file di. npy atau. format npz
Pilihan
Menggunakan. Itu dapat membaca file yang dihasilkan oleh salah satu dari , , atau
Gunakan pemetaan memori. Melihat
Tulis ke file untuk dibaca kembali oleh NumPy
Biner
Gunakan , atau untuk menyimpan banyak array atau
Untuk , atur >>> np.genfromtxt("csv.txt", delimiter=",", dtype=np.int8, filling_values=99) array([[ 1, 2, 3], [ 4, 99, 6], [ 7, 8, 9]], dtype=int8) 2 kecuali jika dtype berisi objek Python, yang membutuhkan pengawetan
Array bertopeng , begitu pula subkelas array arbitrer lainnya
Bisa dibaca manusia
dan membuat file biner. Untuk menulis file yang dapat dibaca manusia, gunakan. Larik hanya boleh 1 atau 2 dimensi, dan tidak ada `savetxtz` untuk beberapa file
Array besar
Melihat
Baca file biner yang diformat secara sewenang-wenang ("binary blob")
Gunakan array terstruktur .
Contoh
Header file >>> np.genfromtxt("csv.txt", delimiter=",", dtype=np.int8, filling_values=99) array([[ 1, 2, 3], [ 4, 99, 6], [ 7, 8, 9]], dtype=int8) _7 adalah blok 44-byte sebelum >>> np.genfromtxt("csv.txt", delimiter=",", dtype=np.int8, filling_values=99) array([[ 1, 2, 3], [ 4, 99, 6], [ 7, 8, 9]], dtype=int8) 8 byte dari data suara aktual
>>> np.genfromtxt("csv.txt", delimiter=",", usemask=True) masked_array( data=[[1.0, 2.0, 3.0], [4.0, --, 6.0], [7.0, 8.0, 9.0]], mask=[[False, False, False], [False, True, False], [False, False, False]], fill_value=1e+20) 2
Header file >>> np.genfromtxt("csv.txt", delimiter=",", dtype=np.int8, filling_values=99) array([[ 1, 2, 3], [ 4, 99, 6], [ 7, 8, 9]], dtype=int8) _7 sebagai tipe berstruktur NumPy
>>> np.genfromtxt("csv.txt", delimiter=",", usemask=True) masked_array( data=[[1.0, 2.0, 3.0], [4.0, --, 6.0], [7.0, 8.0, 9.0]], mask=[[False, False, False], [False, True, False], [False, False, False]], fill_value=1e+20) _3
Contoh >>> np.genfromtxt("csv.txt", delimiter=",", dtype=np.int8, filling_values=99) array([[ 1, 2, 3], [ 4, 99, 6], [ 7, 8, 9]], dtype=int8) _7 ini untuk ilustrasi;
(Diadaptasi dari Pauli Virtanen, , berlisensi CC BY 4. 0. )
Tulis atau baca array besar
Larik yang terlalu besar untuk muat dalam memori dapat diperlakukan seperti larik dalam memori biasa menggunakan pemetaan memori
Data array mentah ditulis dengan atau dapat dibaca dengan
>>> np.genfromtxt("csv.txt", delimiter=",", usemask=True) masked_array( data=[[1.0, 2.0, 3.0], [4.0, --, 6.0], [7.0, 8.0, 9.0]], mask=[[False, False, False], [False, True, False], [False, False, False]], fill_value=1e+20) _4
Output file oleh (yaitu, menggunakan format numpy) dapat dibaca menggunakan argumen kata kunci >>> with open("fixedwidth.txt", "r") as f: .. data = (f.read()) >>> print(data) 1 2 3 44 6 7 88889 8
>>> np.genfromtxt("csv.txt", delimiter=",", usemask=True) masked_array( data=[[1.0, 2.0, 3.0], [4.0, --, 6.0], [7.0, 8.0, 9.0]], mask=[[False, False, False], [False, True, False], [False, False, False]], fill_value=1e+20) 5
Pemetaan memori tidak memiliki fitur seperti pemotongan dan kompresi data;
HDF5. h5py atau PyTables
Zar.
NetCDF.
Untuk kompromi antara memmap, Zarr, dan HDF5, lihat pythonspeed. com
Tulis file untuk dibaca oleh alat lain (non-NumPy).
Format untuk bertukar data dengan alat lain termasuk HDF5, Zarr, dan NetCDF (lihat )
Tulis atau baca file JSON
Array NumPy tidak secara langsung dapat diserialkan JSON
Simpan/pulihkan menggunakan file acar
Hindari bila memungkinkan; . pickles are not secure against erroneous or maliciously constructed data.
Gunakan dan. Tetapkan >>> np.genfromtxt("csv.txt", delimiter=",", dtype=np.int8, filling_values=99) array([[ 1, 2, 3], [ 4, 99, 6], [ 7, 8, 9]], dtype=int8) _2, kecuali array dtype menyertakan objek Python, dalam hal ini pengawetan diperlukan
Mengonversi dari DataFrame panda ke larik NumPy
Melihat
Simpan/pulihkan menggunakan dan
Secara umum, lebih suka dan
dan kehilangan informasi tentang endianness dan presisi sehingga tidak cocok untuk apa pun kecuali penyimpanan awal