我对Python很陌生,所以如果这个很容易,我很抱歉。 (这对我来说似乎很容易,但我还在挣扎......)
我已经完成了从IV扫描中从Keithley SMU 2400中踢回的数字列表,并且按照以下顺序排列结果列表:
[v0, c0, t0, v1, c1, t1, v2, c2, t2, ...]
由于PyVisa的query_ascii_values命令,该列表似乎是一个数字列表(不是ascii值列表)。
如何将这些解析为数字列(对于csv或类似的输出)或三个单独的列表,以便在matplotlib中进行绘图。
我爱的输出最后会与此类似:
volts = [v0, v1, v2, v3...]
currents = [c0, c1, c2, c3...]
times = [t0, t1, t2, t3...]
应该可以更轻松地在matplotlib中绘图(或输出到csv文本文件中)。
请注意我的v0,v1等只是我的名字,它们目前都是数字。
我会在Matlab中尝试过类似的内容:
volts = mydata(1:3:length(mydata));
(通过从1开始计算每三个项目来调用索引)
感谢您的想法和帮助!还有 - 像这样的简单数据调整有什么好的资源,我应该得到一份?
答案 0 :(得分:5)
简单切片工作。因此,以volts, currents, times = A[::3], A[1::3], A[2::3]
作为输入列表,我们将 -
select t.Task_ID,t.task_creator_ID,ttig.Task_taker_Task_taker_ID
from
Task as t left join assigned_to as tig on t.Task_ID= tig.Task_ID
left join taker_in_Group as ttig on tig.Group_ID=ttig.Group_ID
left join Task_taker as tt on tt.Task_taker_ID = ttig.Task_taker_Task_taker_ID
left join task_in_typ as titp on titp.task_ID = t.Task_ID
left join Typ as tp on titp.typ_ID = tp.typ_ID
where t.task_creator_ID = 'seam4339';
答案 1 :(得分:2)
如果你想保留一份清单,那么Divakar的解决方案效果很好。但是,如果你以后要进行分析和绘图,你真的想要使用一个numpy数组,这使得你想要做的事情更容易。
要将它变成一个numpy数组,你可以这样做:
>>> import numpy as np
>>>
>>> mydata = np.array(mydata)
要将其变为单个变量,您可以这样做:
>>> volts, currents, times = mydata.reshape(-1,3).T
这会重塑为Nx3数组,然后将其转换为3xN数组,然后将每一行放在一个单独的变量中。这样做的一个优点是它非常快,因为只创建了一个数组,不像列表方法需要创建4个列表(特别是如果你将数据直接放入一个numpy数组中)。
您还可以使用Divakar与列表一起使用的相同方法,同样避免创建其他列表。
话虽如此,我强烈建议你研究一下熊猫。它将使像更多这样的数据更容易跟踪。您可以使用信息名称标记数组的列,这意味着您不需要将此类数据拆分为三个变量来跟踪它。