फ़िल्टर किए गए सीएसवी फ़ाइल नामों को एक नई सरणी में रखना चाहते हैं ताकि व्यक्तिगत रूप से सर्वोत्तम फिट की अलग-अलग पंक्तियों के साथ ग्राफ़ प्लॉट कर सकें

एक स्थिरांक निर्धारित करने के लिए डेटा का विश्लेषण करने वाली परियोजना का हिस्सा।

import scipy as sp

for f in A:
     with open(f,'r') as file:
         line1=file.readline()
         line1_split=line1.split(',')
         if 'Instrument Response: Good ' in line1_split[3]: #filters good from bad instrument response.
             print(f)
             print(line1_split[3])
             good_file_data=sp.array[f]
print(good_file_data[1])

अपेक्षित परिणाम दूसरा फ़ाइल नाम है जिसमें अच्छा साधन प्रतिक्रिया है। इसके बजाय दिखाता है:

"बिल्टिन मेथड सब्स्क्राइब करने योग्य नहीं है" त्रुटि

0
Bad_physicist 6 नवम्बर 2019, 18:17
नहीं, यह काम नहीं करता है, अब यह लौटाता है कि जब मैं प्रिंट (good_file_data [1]) लिखता हूं कि सरणी के लिए बहुत सारे सूचकांक हैं
 – 
Bad_physicist
6 नवम्बर 2019, 18:30
वास्तव में आप क्या करने की कोशिश कर रहे हैं? आप sp.array[f] (या संशोधित sp.array(f)) से क्या उम्मीद कर रहे थे? क्या आप फ़ाइल नामों को एक सूची में एकत्रित करना चाहते हैं? इसके लिए वास्तव में scipy की आवश्यकता नहीं होगी। बस एक खाली सूची शुरू करें और इसे लूप के मुख्य भाग में जोड़ें। या -- एक खाली sp.array को इनिशियलाइज़ करें और उसमें जोड़ें। आप जो कुछ भी उपयोग करते हैं, आपको ऐसा करने के लिए डेटा संरचना बनाने की आवश्यकता है।
 – 
John Coleman
6 नवम्बर 2019, 18:32
मदद के लिए धन्यवाद, वह हासिल किया जो मैं चाहता था
 – 
Bad_physicist
6 नवम्बर 2019, 18:36

1 उत्तर

चूँकि sp.array एक फ़ंक्शन/विधि है, अनुक्रम वस्तु नहीं, वर्गाकार कोष्ठक वाली सदस्यता का उपयोग करने से वह त्रुटि उत्पन्न होगी। साथ ही, good_file_data संग्रह ए से फ़ाइलों से सभी तालिका डेटा पढ़ने को पकड़ने के लिए अनुक्रम (सूची, सरणी) होना चाहिए। निम्नलिखित केवल एक छोटा बदलाव है:

import scipy as sp

good_file_data = []
for f in A:
    with open(f, ‘r') as file:
        line1_split = file.readline().split(‘,’)
        if 'Instrument Response: Good ‘ in line1_split[3]:  # filters good from bad instrument response.
            print(f)
            print(line1_split[3])
            good_file_data.append(sp.array(f))
print(good_file_data[1])
0
HVD 6 नवम्बर 2019, 18:51