numpy
सुन्न के साथ फ़ाइल IO
खोज…
बाइनरी फ़ाइलों का उपयोग करके खस्ता सरणियों को सहेजना और लोड करना
x = np.random.random([100,100])
x.tofile('/path/to/dir/saved_binary.npy')
y = fromfile('/path/to/dir/saved_binary.npy')
z = y.reshape(100,100)
all(x==z)
# Output:
# True
लगातार संरचना के साथ पाठ फ़ाइलों से संख्यात्मक डेटा लोड हो रहा है
फ़ंक्शन np.loadtxt
का उपयोग csv जैसी फ़ाइलों को पढ़ने के लिए किया जा सकता है:
# File:
# # Col_1 Col_2
# 1, 1
# 2, 4
# 3, 9
np.loadtxt('/path/to/dir/csvlike.txt', delimiter=',', comments='#')
# Output:
# array([[ 1., 1.],
# [ 2., 4.],
# [ 3., 9.]])
एक ही फ़ाइल को np.fromregex
साथ एक नियमित अभिव्यक्ति का उपयोग करके पढ़ा जा सकता है:
np.fromregex('/path/to/dir/csvlike.txt', r'(\d+),\s(\d+)', np.int64)
# Output:
# array([[1, 1],
# [2, 4],
# [3, 9]])
CSV शैली ASCII फ़ाइल के रूप में डेटा सहेजना
ASCII फ़ाइल में डेटा को सहेजने के लिए np.loadtxt
, np.savetxt
का उपयोग किया जा सकता है
import numpy as np
x = np.random.random([100,100])
np.savetxt("filename.txt", x)
स्वरूपण को नियंत्रित करने के लिए:
np.savetxt("filename.txt", x, delimiter=", " ,
newline="\n", comments="$ ", fmt="%1.2f",
header="commented example text")
आउटपुट:
$ commented example text
0.30, 0.61, 0.34, 0.13, 0.52, 0.62, 0.35, 0.87, 0.48, [...]
CSV फ़ाइलों को पढ़ना
उपलब्ध तीन मुख्य कार्य (मैन पेज से विवरण):
fromfile
- एक ज्ञात डेटा-प्रकार के साथ द्विआधारी डेटा को पढ़ने का एक अत्यधिक कुशल तरीका, साथ ही बस स्वरूपित पाठ फ़ाइलों को पार्स करना। टोफाइल विधि का उपयोग करके लिखे गए डेटा को इस फ़ंक्शन का उपयोग करके पढ़ा जा सकता है।
genfromtxt
- एक पाठ फ़ाइल से डेटा लोड, लापता मान निर्दिष्ट के रूप में संभाला के साथ। पहली स्किप_हाइडर लाइनों के पिछले प्रत्येक लाइन को सीमांकक चरित्र में विभाजित किया गया है, और टिप्पणी चरित्र का अनुसरण करने वाले वर्णों को छोड़ दिया गया है।
loadtxt
- टेक्स्ट फ़ाइल से डेटा लोड करें। पाठ फ़ाइल में प्रत्येक पंक्ति में समान मान होना चाहिए।
genfromtxt
के लिए एक आवरण समारोह है loadtxt
। genfromtxt
उपयोग करने के लिए सबसे सीधा है क्योंकि इसमें इनपुट फ़ाइल से निपटने के लिए कई पैरामीटर हैं।
लगातार कॉलम की संख्या, निरंतर डेटा प्रकार (संख्यात्मक या स्ट्रिंग):
इनपुट फ़ाइल को देखते हुए, सामग्री के साथ myfile.csv
:
#descriptive text line to skip
1.0, 2, 3
4, 5.5, 6
import numpy as np
np.genfromtxt('path/to/myfile.csv',delimiter=',',skiprows=1)
एक सरणी देता है:
array([[ 1. , 2. , 3. ],
[ 4. , 5.5, 6. ]])
कॉलम, मिश्रित डेटा प्रकार (कॉलम के पार) की लगातार संख्या:
1 2.0000 buckle_my_shoe
3 4.0000 margery_door
import numpy as np
np.genfromtxt('filename', dtype= None)
array([(1, 2.0, 'buckle_my_shoe'), (3, 4.0, 'margery_door')],
dtype=[('f0', '<i4'), ('f1', '<f8'), ('f2', '|S14')])
dtype=None
के उपयोग पर ध्यान दें dtype=None
परिणाम dtype=None
करता है।
स्तंभों की असंगत संख्या:
फ़ाइल: 1 2 3 4 5 6 7 8 9 10 11 22 13 14 15 15 17 17 18 19 20 21 22 23 24
result=np.fromfile(path_to_file,dtype=float,sep="\t",count=-1)