Python 板


LINE

安安大家好,小弟 python 新手。 因实验缘故,我经常会有个 *.csv 档,例如这个 gist 里头的 第二份档案 APD23_BDlines.csv, https://gist.github.com/3847082e32d93eeead73b3acb7fc1914.git 第一份档案 APD23.py 是我读取 *.csv 的方式。在这个 APD23_BDlines.csv 里面有很多条曲线的 (x,y) 座标,大致如下 DopingConcentration(C1(n300_des_2)) X DopingConcentration(C1(n300_des_2)) Y DopingConcentration(C1(n302_des)) X DopingConcentration(C1(n302_des)) Y DopingConcentration(C1(n304_des)) X DopingConcentration(C1(n304_des)) Y .... 而我希望能够写个程式,将每条曲线的 (x,y) 座标分别存入两个阵列。我的步骤是: 1. 判断每条曲线有多少个数据点 2. 为每条曲线建立 array 3. 读取数据,将数据存入 array 上述连结中的第一份程式码 APD23.py 是我的实际作法。 这样的步骤让我很疲累,因为其实我的 *.csv 格式都是一样的。 1. 第一横列,都是我的资料名称,并且以 x1, y1, x2, y2, ... 规则排列 2. 各直行的第二横列底下,都是我的资料。 所以我希望能够 1. 自动判断有多少组 (x,y) 并建立相对应的阵列数目,自动命名阵列与设定阵列长度。 2. 自动将 *.csv 中的数据储存至每个阵列中 我想了很久,都不知道怎麽做 QQ 有大大可以教我吗 >< 因为我 想快速分析很多资料,但这样人为建立阵列实在是太耗时了。 而如果自动命名与建立阵列,那我其实也不知道该怎麽写这种 「尚未存在的阵列」的数据处理程式...因为我连名字都不知道 QQ 请各位大大帮忙一下 >< 感谢! --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.192.0.245
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1547625918.A.1BC.html
1F:推 sherees: 试试看 eval 01/16 16:09
感谢大大,我现在就来搜寻 !! 大大,刚搜寻了一下,看不太懂这 eval 可以拿来做些什麽...Orz 我继续研究研究
2F:推 sherees: 应该是要用 exec 才对 0.0 01/16 16:22
哦哦我查查看...
3F:→ sherees: 你可以用来 assign 现在不存在的变数 01/16 16:23
4F:→ sherees: 只要把字串的逻辑写好就好 01/16 16:23
大大您的意思是说,我可以用 exec 来执行现在不存在的变数吗? 所以 exec 并不是用来自动读取 *.csv 并自动建立阵列的罗?
5F:→ sherees: 恩恩 所以你里面的 var_1, 2, 3... 可以用这个来解决 01/16 16:28
了解,这是我遇到的第一个有点难理解的东西 XD 需要花点时间来了解怎麽用了.. 谢谢大大... 那想请问不晓得您对於「自动建立阵列」有什麽想法吗? 感觉至少要先建立了阵列,才能使用 exec ?
6F:→ s860134: 这个问题取决於你之後资料要怎麽做处理 01/16 20:48
大大您好,我之後会对曲线微分积分,而且会将每条曲线之间作四则运算或积分等。 但因为每个曲线的数据点不尽相同,所以我在进行曲线之间的运算之前,我会需要 先重整化每条曲线的数据,意思是说,让他们有着相同的 x 座标。方法大概是 简单的内插外插法。 仔细想下去感觉很难,因为我的 array 命名... WOW 好简洁整齐的 code ........ (羡慕佩服 我研究一下!十分感谢大大帮助啊!!!想了好久 ※ 编辑: Philethan (123.192.0.245), 01/16/2019 21:20:43
8F:→ s860134: 你 arry 命名、顺序重不重要? 01/16 21:20
9F:→ s860134: 里面需要改善的事: dict -> OrderedDict, 去除无用的値 01/16 21:22
10F:→ s860134: list 类别要改为 numpy 的类别 01/16 21:22
11F:→ s860134: dict 可以由 dict.keys() 取得 key 值列表 01/16 21:23
12F:→ 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 长度就停止在这,否则之後绘图可能会有些问题>< 非常感谢大大帮助!
13F:→ s860134: 这就是切割字串的问题罗~ 01/16 21:29
14F:→ s860134: "too many values to unpack" 是因为右侧执行结果多余 01/16 21:30
15F:→ s860134: 左侧的变数数量,所以我才说你要用 rsplit 或 re 01/16 21:31
16F:→ s860134: 'AA BB CC'.rsplit(' ', 1) == ['AA BB','CC'] 01/16 21:32
大大我好像了解了,因为我另一个 *.csv 档案的曲线名称中有空格。 原则上是以 , 作为分割 :) 我查一下您说的 resplit,十分感谢您!
17F:→ s860134: 这些问题你都能解决,先搞清楚自己要解决的问题 01/16 21:33
18F:→ s860134: 去找相关的关键字应该都不是问题 01/16 21:34
好的,非常感谢您,已经有非常多尝试的方向!感谢大大!
19F:→ 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
20F:→ s860134: 其实你不见得要 exec ,不过堪用就好... 囧 01/16 23:35
小弟我只会这个...其实也是刚刚才学会的哈哈 不知道大大您有没有其他建议 >< ※ 编辑: Philethan (123.192.0.245), 01/16/2019 23:36:52
21F:→ s860134: 只是对 python 基本型别的 method 不熟而已 01/17 00:00
22F:→ s860134: 建议也没甚麽,其实不用把要图的内容赋值到变数也话得出 01/17 00:00
23F:→ s860134: 画 01/17 00:01
24F:→ s860134: 用 exec 制造很多变数其实最後你还是把他带到同个函数 01/17 00:01
25F:→ s860134: 这样的用法和你用 for 回圈画图差不多意思思 01/17 00:02
哦哦 那如果不用 exec 制造 array,有办法处理各曲线的微分、积分与互相的 四则运算吗?原来有办法用 for loop 画图哦@@感谢!我再来学学 XD ※ 编辑: Philethan (123.192.0.245), 01/17/2019 00:06:07







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP