我有一个生成二维数组的函数。我在 for 循环中运行该函数以生成数据。循环完成后,我希望将这些二维数组中的每一个组合起来(水平堆叠),以便我可以将其导出到 csv 文件。我发现 column_stack 函数对于按照我想要的方式堆叠数组很有用。假设“结果”是我的函数返回的二维数组。如果我有一个初始数组,我可以按照我想要的方式堆叠它。此时我没有初始数组。但是,有什么方法可以在 for 循环中生成一个数组并从以下迭代中附加其他二维数组np.column_stack((results,results))array([[-2.7532e-03, 1.1973e-06, -2.7532e-03, 1.1973e-06], [ 9.7603e-02, 1.9542e-06, 9.7603e-02, 1.9542e-06], [ 1.9770e-01, 2.0952e-06, 1.9770e-01, 2.0952e-06], [ 2.9758e-01, 2.1637e-06, 2.9758e-01, 2.1637e-06], [ 3.9787e-01, 1.4734e-06, 3.9787e-01, 1.4734e-06], [ 4.9795e-01, 1.3670e-06, 4.9795e-01, 1.3670e-06], [ 5.9790e-01, 2.0252e-06, 5.9790e-01, 2.0252e-06], [ 6.9817e-01, 2.1771e-06, 6.9817e-01, 2.1771e-06], [ 7.9837e-01, 1.2704e-06, 7.9837e-01, 1.2704e-06], [ 8.9822e-01, 2.1794e-06, 8.9822e-01, 2.1794e-06], [ 9.9847e-01, 1.4442e-06, 9.9847e-01, 1.4442e-06]])这就是我正在尝试做的事情:from xtralien import *from numpy import *### 1.Sweep Settings ###vstart = 0 #Starting Voltage (V)vend = 1 #End Voltage (V)vstep = 0.1 #Step Size (V)smu = 'SMU1'### 2.Create Variables ###vnum = ((vend-vstart)/vstep) + 1 #Calculate number of steps in sweepvolts = linspace(vstart,vend,vnum) #Create voltage list### 3. Perform Sweep ###with X100.USB('COM5') as Dev1: #Connect to the Device via USB for i in [1,2,3,4,5]: ################This list is just an example. in the program it might be of any length!! Dev1['SMU2'].oneshot(i) results = vstack([Dev1[smu].oneshot(v) for v in volts]) 我希望将所有结果叠加成一个。提前致谢
1 回答
慕勒3428872
TA贡献1848条经验 获得超6个赞
我建议使用 pandas 并将数据附加到 for 循环中的数据帧,然后在后记中连接数据。所以像这样的事情。
import pandas as pdAJ=[]for i in [1,2,3,4,5]: Dev1['SMU2'].oneshot(i) results = vstack([Dev1[smu].oneshot(v) for v in volts]) AJ.append(results) AJ=pd.concat(AJ)
请注意,在 for 循环之后,AJ 将只是一个可以以多种不同方式组合的数据帧的数据帧。有关更多信息,该网站很有用https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html
添加回答
举报
0/150
提交
取消