python - 将掩码应用于多维数组

标签 python arrays list mask np

我想以正确的方式做到这一点:

data = np.array(data)
data =[
[1, 1, 2, 1],
[0, 1, 3, 2],
[0, 2, 3, 2],
[2, 4, 3, 1],
[0, 2, 1, 4],
[3, 1, 4, 1]]

这应该变成(删除以 0 开头的行):

[1, 1, 2, 1]
[2, 4, 3, 1]
[3, 1, 4, 1]

到目前为止我是这样做的:

lines = []
for i in range(0, len(data[0])):
    if data[0,i] != 0:
        lines.append(data[:,i])
lines = np.array(lines)

然后我发现了这个好方法:

mask = 1 <= data[0,:]

现在我想将该掩码应用于该数组。该掩码内容为:[True, False, False, True, False, True]。我该怎么做?

最佳答案

为什么不只是:

[ar for ar in data if ar[0] != 0]

这假设数组不为空。

关于python - 将掩码应用于多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30427854/

相关文章:

python - 从 python 3 导出 python 2 的库

python - 断言对模拟方法的连续调用

python - django-allauth,我怎样才能只允许通过社交注册/登录?

c++ - QString 内部的 Qt QVarLengthArray

堆深拷贝上的 C++ 轮数组

python - for 循环不断地重新开始

Python 从预定事件返回值

java - 是什么导致了 java.lang.ArrayIndexOutOfBoundsException 以及如何防止它?

c# - 如何按特定成员对对象列表进行排序?

条件的 Python 子列表