我有一个数组的数组,我想保存最后一个元素等于零的所有记录。 我怎么能这么做呢? 我有这样的东西。
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. ]
所以我想保存第二个和第三个记录。
最简单,最实用的方法就是使用列表理解并创建一个新的列表。 在此之后,您可以将其转换回数组。
用您的数组名称替换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]]