当变量数量未知时,在Python中使用'for'循环分配变量名称

时间:2017-11-30 13:11:57

标签: python-3.x for-loop variable-assignment data-handling

我是Python和Stacks Overflow的新手。我试图将变量名称分配给np中的1维列数组。矩阵数据集。总数据列的数量未知,因此我无法手动命名列。但我知道感兴趣的列从数据集的第三列开始,即它们从-Data [:,2] - 开始。我的问题是;当列总数未知时,如何为所有感兴趣的“列阵列”分配变量名称?我是

Assignment 1 = Data[:,2]
Assignment 2 = Data[:,3]
Assignment 3 = Data[:,4]
Assignment 4 = Data[:,5]
...
Assignment N = Data[:,N+1]

我尝试使用for循环......!以下代码不起作用!

# Create index, to compute the amount of columns of interest. "Data" is a np
# array 

    cols= Data.columns[2:]

# i from column 2 to last column 

    for i in range(2,(len(cols))):

        +Assigment(i-1) = Data[:,i]
        # Variabel name = 'slice' of column data

我的输入看起来像这样;

Input "Data" numpy matrix

期望的输出将是列值的一维数组,即

Desired 1 dim. array output

任何想法都会非常感激。

Python 3.6.1 64bits,Qt 5.6.2,Darwin上的PyQt5 5.6

1 个答案:

答案 0 :(得分:0)

您不想动态分配变量名称。你想要一个清单。您可以使用list comprehension

构建它
assignments = [Data.columns[:,i+1] for i in range(1,len(cols)-1)]

然后你可以在这样的循环中使用这个列表:

for assignment in assignments:
   #do something

您还可以使用assignments[i]访问作业i。

相关问题