从数组的数组中删除元素

2024-09-27 07:27:40 发布

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

我有一个数组,我想根据逻辑命令从中删除特定的元素。你知道吗

我有一个数组,这样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])]

(基本上消除了第二个和第三个入口)但是它返回了第一个和第二个入口两次,这对我来说没有意义,特别是在第二个入口中,星系[2][4]>;1。
任何帮助都将不胜感激。你知道吗


Tags: in命令gt元素数组逻辑arraycluster

热门问题