Python 在某些条件下从数组数组中保存数组
我有一个数组,我想保存最后一个元素等于零的所有记录。我该怎么做?我有这样的东西Python 在某些条件下从数组数组中保存数组,python,arrays,Python,Arrays,我有一个数组,我想保存最后一个元素等于零的所有记录。我该怎么做?我有这样的东西 array([[-0.88420819, -1.01983669, 1.12353698, ..., -2.18137332, 1.12353698, 3. ], [ 0.55632749, -1.97404661, 0.79290805, ..., -0.83084723, 0.79290805, 0. ], [-1
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]
如果要将其保存到新变量,可以执行以下操作: 已保存的_数组=[] 对于给定_数组中的x: 如果x[-1]==0: 已保存的_array.appendx 另一种简短形式是: 已保存的\u数组=listfilterlambda x:x[-1]==0,给定\u数组 你可以用
没有其他答案的离经叛道:
>>> a[a[:,-1] == 0]
array([[0.55632749, -1.97404661, 0.79290805, Ellipsis, -0.83084723,
0.79290805, 0.0],
[-1.17401272, -3.25402615, -1.55695256, Ellipsis, -1.08043287,
-1.55695256, 0.0]], dtype=object)
这不是有效的代码。如果数字少,没有省略号,这将是一个更好的例子。
>>> a[a[:,-1] == 0]
array([[0.55632749, -1.97404661, 0.79290805, Ellipsis, -0.83084723,
0.79290805, 0.0],
[-1.17401272, -3.25402615, -1.55695256, Ellipsis, -1.08043287,
-1.55695256, 0.0]], dtype=object)