我有一个数组数组,我想根据逻辑命令从其中删除特定元素。
我有一个数组,例如galaxies = ([[z1,ra1,dec1,distance1],[z2,ra2,dec2,distance2]...])
,并且我想删除所有距离项大于1的元素。我尝试从星系[i]中写入“,删除所有星系,例如,星系[i] ] [4]> 1“
我现在的代码是:
galaxies_in_cluster = []
for i in range(len(galaxies)):
galacticcluster = galaxies[~(galaxies[i][4]<=1)]
galaxies_in_cluster.append(galacticcluster)
where
galaxies = [array([1.75000000e-01, 2.43794800e+02, 5.63820000e+01, 6.80000000e+00,
7.07290131e-02]),
array([1.75000000e-01, 2.40898000e+02, 5.15900000e+01, 7.10000000e+00,
5.60800387e+00]),
array([1.80000000e-01, 2.43792000e+02, 5.63990000e+01, 6.50000000e+00,
5.00059297e+02]),
array([1.75000000e-01, 2.43805000e+02, 5.62190000e+01, 7.80000000e+00,
2.16588562e-01])]
我希望它返回
galaxies_in_cluster = [array([1.75000000e-01, 2.43794800e+02, 5.63820000e+01, 6.80000000e+00,
7.07290131e-02]), array([1.75000000e-01, 2.43805000e+02, 5.62190000e+01, 7.80000000e+00,
2.16588562e-01])]
(基本上消除了第二和第三项),但是它两次返回了第一和第二项,这对我来说没有意义,尤其是因为在第二项中,galaxies [2] [4]> 1。 /> 任何帮助将不胜感激。