【问题标题】:Filtering a numpy.dstack过滤 numpy.dstack
【发布时间】:2023-01-09 21:29:16
【问题描述】:

我有一个像这样的数据栈:

import numpy as np
a = np.array((1,2,6))
b = np.array((2,3,4))
c = np.array((8,3,0))
stack = np.dstack((a,b,c))
print(stack)
#[[[1 2 8]
  #[2 3 3]
  #[6 4 0]]]

我想过滤掉 2 元素小于 1 的列表。

是这样的:

new_list = []

for i in stack:
    for d in i[:,2]:
        if d>=1:
            new_list.append(d)
print(new_list) # [8,3]

这样做只添加了 2 元素,但我想拥有所有行,如下所示:

#[[[1 2 8]
  #[2 3 3]]]

如果我append(i),结果也不是想要的。

【问题讨论】:

    标签: python numpy filter stack


    【解决方案1】:

    你不需要循环,你可以通过切片来完成

    stack[stack[:,2] >= 1]
    

    【讨论】:

    • 谢谢,现在很容易:)
    猜你喜欢
    • 2020-05-08
    • 2013-01-18
    • 2019-04-07
    • 1970-01-01
    • 2012-03-22
    • 2018-04-26
    • 2021-04-29
    • 2023-04-05
    • 2014-01-30
    相关资源
    最近更新 更多