用匹配的目录附加数组

2024-04-28 23:02:16 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我要做的是创建一个循环,附加一个基于匹配星体的阵列,并附加来自它们各自阵列的恒星质量“VESPA_ID_SM_array[:,1],“天体矩阵[:,4]”

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)包含一列,它是斯隆数字巡天目录的“SpecObjID”。你知道吗

注:VESPA目录的SpecObjID与SDSS目录的SpecObjID相同。你知道吗

“天球矩阵[:,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]])

运行此命令时出现的错误是“'数字.int64'对象不可编辑 " 提前感谢大家的时间和帮助。你知道吗


Tags: csv目录idfornp质量矩阵数字
1条回答
网友
1楼 · 发布于 2024-04-28 23:02:16

试图对标量值进行分解时,可能会引发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。你知道吗

相关问题 更多 >