तो, यहाँ मैं क्या करना चाहता हूँ: मेरे पास डेटा टेक्स्ट फ़ाइलों के दो सेट हैं। पहले सेट में इस तरह दिखने वाला डेटा है:

timestamps  parameter
151 152     700
153 154     701
155 156     702
157 158     703

जहां पहला और दूसरा कॉलम टाइमस्टैम्प हैं, वहीं तीसरा एक प्रामेटर है। डेटा का दूसरा सेट इस तरह दिखता है:

timestamp       data value
154.2           +6.0087e-03
155.5           +8.3871e-03
155.7           +5.9500e-03
158             +1.5245e-02

जहां पहले कॉलम में टाइमस्टैम्प होता है, दूसरा डेटा-वैल्यू होता है।

तो, मैं अब जो करना चाहता हूं वह निम्नलिखित है: मैं एक निश्चित पैरामीटर के लिए टाइमस्टैम्प पढ़ना चाहता हूं, उदाहरण के लिए पैरामीटर 702 (इसलिए 155 और 156) के लिए टाइमस्टैम्प कहते हैं। फिर मैं उन टाइमस्टैम्प को लेना चाहता हूं और उन टाइमस्टैम्प के बीच सभी डेटा-मानों को एक सरणी में जोड़ना चाहता हूं (इसलिए इस उदाहरण में सरणी होगी:

array = [+8.3871e-03, +5.9500e-03]

इसलिए, मैं इसे वास्तव में सेट एक की प्रत्येक पंक्ति के लिए करना चाहता हूं, जिसका अर्थ है कि 700 से 1100 तक के पैरामीटर, ताकि मुझे उन प्रत्येक पैरामीटर के लिए डेटा-मानों की एक सरणी मिल सके। मैं डेटा को आगे संसाधित करना चाहता हूं, लेकिन पहले मुझे उस समस्या का समाधान प्राप्त करने की आवश्यकता है, लेकिन मेरे पास वास्तव में एक अच्छा विचार नहीं है। मैं किसी भी सुझाव के लिए आभारी हूँ!

-2
Ymaoh 1 अक्टूबर 2017, 16:21
क्या आपने वास्तव में इस समस्या को स्वयं हल करने का प्रयास करने के लिए कुछ किया है? क्या आपने फ़ाइल को अंदर पढ़ा है?
 – 
roganjosh
1 अक्टूबर 2017, 16:26
क्या आप जानते हैं कि आप यह कैसे करना चाहते हैं?
 – 
cs95
1 अक्टूबर 2017, 16:26
1
SO एक कोडिंग सेवा नहीं है। आपसे अपना प्रोजेक्ट शुरू करने की उम्मीद की जाती है और जब आप अटक जाते हैं तो अपना कोड पोस्ट करें और विशिष्ट प्रश्न पूछें।
 – 
Klaus D.
1 अक्टूबर 2017, 16:27

2 जवाब

इसलिए, मैंने माना है कि मुझे पहले सेट की प्रत्येक पंक्ति में केवल पहली प्रविष्टि की आवश्यकता है, इसलिए पहला टाइमस्टैम्प। और इस तरह, मुझे काफी सरल समाधान मिला जो काम करता प्रतीत होता है। यह इस तरह दिख रहा है:

pyro01 = np.loadtxt('pyro_eins.dat')
pyro_run01 = []
data01 = np.loadtxt('wavelengths_eins.dat')
    for line in data01:
        pyro_run01.append(np.average(pyro01[pyro01[:,0] == int(line[0])][:,-1]))

जहां pyro_eins दूसरा सेट है (डेटा मानों के साथ) और तरंगदैर्घ्य_eins पैरामीटर और टाइमस्टैम्प के साथ सेट है।

0
Ymaoh 1 अक्टूबर 2017, 18:53

आप इसे आजमा सकते हैं:

parameters = {int(i[-1]):i[:-1] for i in [b.strip('\n').split() for b in open('file1.txt')][1:]}
datavals = {a:b for a, b in [i.strip('\n').split() for i in open('file2.txt')][1:]}
parameter = 702
final_arrays = [b for a, b in datavals.items() if float(a) >= float(parameters[parameter][0]) and float(a) <= float(parameters[parameter][-1])]
-1
Ajax1234 1 अक्टूबर 2017, 16:31