推 sherees: 試試看 eval 01/16 16:09
感謝大大,我現在就來搜尋 !!
大大,剛搜尋了一下,看不太懂這 eval 可以拿來做些什麼...Orz 我繼續研究研究
推 sherees: 應該是要用 exec 才對 0.0 01/16 16:22
哦哦我查查看...
→ sherees: 你可以用來 assign 現在不存在的變數 01/16 16:23
→ sherees: 只要把字串的邏輯寫好就好 01/16 16:23
大大您的意思是說,我可以用 exec 來執行現在不存在的變數嗎?
所以 exec 並不是用來自動讀取 *.csv 並自動建立陣列的囉?
→ sherees: 恩恩 所以你裡面的 var_1, 2, 3... 可以用這個來解決 01/16 16:28
了解,這是我遇到的第一個有點難理解的東西 XD 需要花點時間來瞭解怎麼用了..
謝謝大大...
那想請問不曉得您對於「自動建立陣列」有什麼想法嗎?
感覺至少要先建立了陣列,才能使用 exec ?
→ s860134: 這個問題取決於你之後資料要怎麼做處理 01/16 20:48
大大您好,我之後會對曲線微分積分,而且會將每條曲線之間作四則運算或積分等。
但因為每個曲線的數據點不盡相同,所以我在進行曲線之間的運算之前,我會需要
先重整化每條曲線的數據,意思是說,讓他們有著相同的 x 座標。方法大概是
簡單的內插外插法。
仔細想下去感覺很難,因為我的 array 命名...
WOW 好簡潔整齊的 code ........ (羨慕佩服
我研究一下!十分感謝大大幫助啊!!!想了好久
※ 編輯: Philethan (123.192.0.245), 01/16/2019 21:20:43
→ s860134: 你 arry 命名、順序重不重要? 01/16 21:20
→ s860134: 裡面需要改善的事: dict -> OrderedDict, 去除無用的値 01/16 21:22
→ s860134: list 類別要改為 numpy 的類別 01/16 21:22
→ s860134: dict 可以由 dict.keys() 取得 key 值列表 01/16 21:23
→ s860134: 變數規則如果不只單空格,可以用 rsplit或是 regexp 01/16 21:24
大大您好,我執行原本的 APD23_BDlines.csv 時成功了!
但是如果換成別的 *.csv 檔就會出現 error
Traceback (most recent call last):
File "/Users/..../code_ptt.py", line 25, in <module>
result = parse_csv(csv_path)
File "/Users/..../code_ptt.py", line 11, in parse_csv
curve_name, x_y = fieldname.split(' ')
ValueError: too many values to unpack (expected 2)
Process finished with exit code 1
array 命名部分,如果能夠為指明是曲線A的x座標,曲線B的y座標,那就太好了QQ
我以前是這樣:
曲線A的x座標:xA = [xA1, xA2, xA3, ...., xA650]
曲線A的y座標:yA = [yA1, yA2, yA3, ...., yA650]
曲線B的x座標:xB = [xB1, xB2, xB3, ...., xB310]
曲線B的y座標:yB = [yB1, yB2, yB3, ...., yB310]
另外在同一份 *.csv 中,不同曲線的數據數目不同,所以會有 - 符號出現。
這時我希望可以讓 array 長度就停止在這,否則之後繪圖可能會有些問題><
非常感謝大大幫助!
→ s860134: 這就是切割字串的問題囉~ 01/16 21:29
→ s860134: "too many values to unpack" 是因為右側執行結果多餘 01/16 21:30
→ s860134: 左側的變數數量,所以我才說你要用 rsplit 或 re 01/16 21:31
→ s860134: 'AA BB CC'.rsplit(' ', 1) == ['AA BB','CC'] 01/16 21:32
大大我好像了解了,因為我另一個 *.csv 檔案的曲線名稱中有空格。
原則上是以 , 作為分割 :)
我查一下您說的 resplit,十分感謝您!
→ s860134: 這些問題你都能解決,先搞清楚自己要解決的問題 01/16 21:33
→ s860134: 去找相關的關鍵字應該都不是問題 01/16 21:34
好的,非常感謝您,已經有非常多嘗試的方向!感謝大大!
→ s860134: 至於 '-' 的問題, for 迴圈有 continue 可以用 01/16 21:35
哦!感謝大大,我以前是用網路上找到的
def isfloat(value):
try:
float(value)
return True
except ValueError:
return False
感謝很麻煩,還要一直用 if condition 判斷 True or False,我待會來
研究如何用 continue 處理 '-',感覺很簡便!我先研究一下怎麼依照逗點分割..
---
阿阿原來大大您早就在推文指出該怎麼改了,抱歉我資質太差,現在才看懂XD
感謝您 已經沒有 error 了!我可接著著手後面的array了^^
已完成拉!!謝謝樓上各位大大的協助!真的是非常感謝 :)
我的Code: https://paste.ofcode.org/EXMECLrxyeujHi8nsvppcB
→ s860134: 其實你不見得要 exec ,不過堪用就好... 囧 01/16 23:35
小弟我只會這個...其實也是剛剛才學會的哈哈
不知道大大您有沒有其他建議 ><
※ 編輯: Philethan (123.192.0.245), 01/16/2019 23:36:52
→ s860134: 只是對 python 基本型別的 method 不熟而已 01/17 00:00
→ s860134: 建議也沒甚麼,其實不用把要圖的內容賦值到變數也話得出 01/17 00:00
→ s860134: 畫 01/17 00:01
→ s860134: 用 exec 製造很多變數其實最後你還是把他帶到同個函數 01/17 00:01
→ s860134: 這樣的用法和你用 for 迴圈畫圖差不多意思思 01/17 00:02
哦哦 那如果不用 exec 製造 array,有辦法處理各曲線的微分、積分與互相的
四則運算嗎?原來有辦法用 for loop 畫圖哦@@感謝!我再來學學 XD
※ 編輯: Philethan (123.192.0.245), 01/17/2019 00:06:07