所以我要做的是创建一个循环,附加一个基于匹配星体的阵列,并附加来自它们各自阵列的恒星质量“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'对象不可编辑 " 提前感谢大家的时间和帮助。你知道吗
试图对标量值进行分解时,可能会引发
is not iterable
错误。例如:在这种情况下,罪魁祸首似乎是
for idy, y in SpecObjID
。循环的每一项看起来都像一个标量,您试图将其解压成idy, y
。你知道吗相关问题 更多 >
编程相关推荐