我有一个生成2d数组的函数。我在for循环中运行该函数以生成数据。循环结束后,我希望将每个二维数组组合在一起(水平堆叠),以便将其导出到csv文件中。
我发现column_stack函数可用于以所需方式堆叠数组。假设“结果”是我的函数返回的二维数组。如果我有一个初始数组,则可以按照自己的方式堆叠它。我目前没有初始数组。
但是,有什么方法可以在for循环中生成一个数组,并通过以下迭代附加其他2d数组
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 sweep
volts = 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])
我希望将所有结果堆叠为一个。 在此先感谢
答案 0 :(得分:0)
我建议使用pandas并将数据附加到for循环中的数据帧中,然后连接数据后缀。像这样
import pandas as pd
AJ=[]
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
答案 1 :(得分:0)
如果要构建一个可用作table()
其他数组的初始值的数组,则可以从空列表的列表中构建它。
演示:
<html>
<head>
<meta name="viewport" content="width=980">
<style>
p {
border: solid red 1px;
font-size: 16px;
text-size-adjust:100%;
}
</style>
</head>
<body>
<p>These should be the same size</p>
<div style="display: flex; flex-wrap: wrap; justify-content: center;">
<p>These should be the same size</p>
<div style="width: 830px;">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec et dolor purus. Etiam ut hendrerit erat. Fusce finibus faucibus velit ac fringilla. Praesent sollicitudin arcu non eleifend rutrum. Mauris convallis sagittis ornare.</p>
</div>
</div>
</body>
</html>
给予:
column_vstack