python - 如何在循环内对数组进行列堆栈?

标签 python arrays numpy

我有一个生成二维数组的函数。我正在 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 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]) 

我希望将所有结果叠加到一个结果中。 提前致谢

最佳答案

如果您想构建一个可用作 column_vstack 其他数组的初始值的数组,您可以从空列表的列表中构建它。

演示:

res = np.array([[]] * 11)      # or better: res = np.zeros(

arr = np.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]])

np.column_stack((res, arr))

给出:

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]])

关于python - 如何在循环内对数组进行列堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55417704/

相关文章:

arrays - 在 Julia 的单个数据框中保存不同长度的数组

python - 如何找到 numpy 数组的根

python - 复杂阵列的智能打印

python - 如何从 Python 中更新的 numpy 数组制作视频

Python:避免分数简化

Python3 在嵌套字典和列表中按值搜索,然后获取其他最近的键/值对

python - Pandas : How to sum column values over a date range

python - 从 NumPy 矩阵中满足条件的每一行中取 N 个第一个值

python - 如何用amcharts和django实时显示数据?

php - 如何使用 PHP 从准备好的语句中获取结果?