numpy删除以零开头的所有行

发布于 2025-01-19 18:58:08 字数 416 浏览 7 评论 0原文

我有2D numpy数组,我想删除以某些值开头的所有行,然后将所有以其他值开头的行保持在

a1 = np.array([[ 0,  1,  2,  3,  4],
   [ 5,  6,  0,  8,  0],
   [10, 11, 12, 13, 14],
   [ 0, 16, 17, 18, 19],
   [20, 21, 22,  0, 24]])

第一步之后的

a2 = ([[ 5,  6,  0,  8,  0],
      [10, 11, 12, 13, 14],
      [20, 21, 22,  0, 24]])

新数组中,然后将所有行开始。

a3 = ([[10, 11, 12, 13, 14]])

I have 2D Numpy array, I would like to delete all rows that start with certain value let say (0), then keep all rows that start with other value let say (10) into new array

a1 = np.array([[ 0,  1,  2,  3,  4],
   [ 5,  6,  0,  8,  0],
   [10, 11, 12, 13, 14],
   [ 0, 16, 17, 18, 19],
   [20, 21, 22,  0, 24]])

after first step

a2 = ([[ 5,  6,  0,  8,  0],
      [10, 11, 12, 13, 14],
      [20, 21, 22,  0, 24]])

last step

a3 = ([[10, 11, 12, 13, 14]])

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

少跟Wǒ拽 2025-01-26 18:58:08

您可以使用以下蒙版来实现此目的:

mask = (a1[:, 0] != 0)
a2 = a1[mask, :]

mask2 = (a2[:, 0] == 10)
a3 = a2[mask2, :]

You can achieve this with the following masks:

mask = (a1[:, 0] != 0)
a2 = a1[mask, :]

mask2 = (a2[:, 0] == 10)
a3 = a2[mask2, :]
摇划花蜜的午后 2025-01-26 18:58:08

您可以使用np.logical_not方法来创建要删除的行的条件。

'''

a2 = a1[np.logical_not(a1[:, 0] == 0)]
a3 = a2[np.logical_not(a2[:, 0] != 10)]

'''

you can use the np.logical_not method to create the conditions for the rows you want to remove.

'''

a2 = a1[np.logical_not(a1[:, 0] == 0)]
a3 = a2[np.logical_not(a2[:, 0] != 10)]

'''

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文