附加具有匹配目录的数组

时间:2016-02-14 18:01:44

标签: python arrays physics

所以我想要完成的是创建一个循环,它根据匹配的SpecObjIDS附加一个数组,并附加来自各自数组的恒星质量“VESPA_ID_SM_Array [:,1]”,“Celestial_Matrix [:,4]”< / p>

VESPA_ID_SM_Array=np.array(np.genfromtxt('C:\\Python12\\Vespa_SM.csv\\results13_19_37_44_33.csv', delimiter=','))

^此文件包含2列。第一列包含VESPA目录的“SpecObjID”,第二列包含每个ID的恒星质量值。

SpecObjID=SpecObj_Table.field(47)包含一列,即Sloan Digital Sky Survey Catalog的“SpecObjID”。

注意:VESPA目录的SpecObjID与SDSS目录的SpecObjID相同。

“Celestial_Matrix [:,4]”是我之前创建的数组,第5列包含来自SDSS调查的选择星系的恒星质量。

我试图这样做的代码是:

SDSS_VESPA_SM=[]
for idy, y in SpecObjID:
    for idy, y in enumerate(VESPA_ID_SM_Array[:,0]):
        if SpecObjID[idy] == VESPA_ID_SM_Array[:,0][idy]:
            SDSS_VESPA_SM.append([[idy],y , Celestial_Matrix[:,4][idy] ,VESPA_ID_SM_Array[:,1][idy]])

运行它时得到的错误是“'numpy.int64'对象不可迭代 “ 提前感谢大家的时间和帮助。

1 个答案:

答案 0 :(得分:0)

当您尝试对标量值进行解构时,可能会引发is not iterable错误。例如:

>>> x, y = 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable

在这种情况下,罪魁祸首似乎是for idy, y in SpecObjID。您正在循环的每个项目看起来都像是您尝试解压缩到idy, y的标量。