【发布时间】:2018-05-14 10:26:23
【问题描述】:
我是 Python 和 Stacks Overflow 的新手。我正在尝试将变量名称分配给 np.xml 中的一维列数组。矩阵数据集。总数据列的数量是未知的,所以我无法手动命名这些列。但是我知道感兴趣的列从数据集的第三列开始,即它们从 -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
我的输入看起来像这样;
所需的输出将是列值的一维数组,即
任何想法将不胜感激。
Python 3.6.1 64 位,Qt 5.6.2,达尔文上的 PyQt5 5.6
【问题讨论】:
-
您能否提供一个输入和所需输出的示例?
-
你的方法是正确的。您可以查看此帖子以动态分配名称。 stackoverflow.com/questions/4010840/…
-
在这种情况下,通常您根本不会使用单个独立变量。您可以改用
list,然后在循环中用append填充它。索引等也变得更容易了 -
感谢您的宝贵时间。我试过
assignments = [Data.columns[:,i+1] for i in range(1,len(cols)-1)]导致python 错误IndexError: too many indices for array。我玩弄了你的代码并得到了assignments = [correctedgrades.columns for i in range(2,len(cols))],结果就是这样;[RangeIndex(start=0, stop=5, step=1), RangeIndex(start=0, stop=5, step=1), RangeIndex(start=0, stop=5, step=1)]如何让它从第 3 列开始( start =2)?
标签: python-3.x for-loop variable-assignment data-handling