提问者:小点点

在一定条件下从数组的数组中保存一个数组


我有一个数组的数组,我想保存最后一个元素等于零的所有记录。 我怎么能这么做呢? 我有这样的东西。

array([[-0.88420819, -1.01983669,  1.12353698, ..., -2.18137332,
         1.12353698,  3.        ],
       [ 0.55632749, -1.97404661,  0.79290805, ..., -0.83084723,
         0.79290805,  0.        ],
       [-1.17401272, -3.25402615, -1.55695256, ..., -1.08043287,
        -1.55695256,  0.        ]

所以我想保存第二个和第三个记录。


共3个答案

匿名用户

最简单,最实用的方法就是使用列表理解并创建一个新的列表。 在此之后,您可以将其转换回数组。

用您的数组名称替换arr

arr = [[-0.88420819, -1.01983669,  1.12353698, -2.18137332,
         1.12353698,  3.        ],
       [ 0.55632749, -1.97404661,  0.79290805, -0.83084723,
         0.79290805,  0.        ],
       [-1.17401272, -3.25402615, -1.55695256, -1.08043287,
        -1.55695256,  0.        ]]

res = [val for val in arr if val[-1] == 0]

匿名用户

如果要将其保存到一个新变量中,可以执行以下操作:

saved_array = []
for x in given_array:
    if x[-1] == 0:
        saved_array.append(x)

另一种简写形式是:

saved_array = list(filter(lambda x: x[-1]==0, given_array))

匿名用户

你可以在列表理解中使用条件句。

old_array = [
  [-0.88420819, -1.01983669, 1.12353698, -2.18137332, 1.12353698,  3],
  [ 0.55632749, -1.97404661, 0.79290805, -0.83084723, 0.79290805, 0],
  [-1.17401272, -3.25402615, -1.55695256, -1.08043287, -1.55695256,  0]
]

new_array = [x for x in old_array if x[-1] == 0]

print(new_array)

# output:
# [[0.55632749, -1.97404661, 0.79290805, -0.83084723, 0.79290805, 0],
# [-1.17401272, -3.25402615, -1.55695256, -1.08043287, -1.55695256, 0]]