从数组数组中删除元素

时间:2019-02-03 20:48:47

标签: python arrays

我有一个数组数组,我想根据逻辑命令从其中删除特定元素。

我有一个数组,例如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。 /> 任何帮助将不胜感激。

0 个答案:

没有答案