我有如下的 numpy 数组。
import numpy as np
data = np.array([[0,0,0,4],
[3,0,5,0],
[8,9,5,3]])
print (data)
Run Code Online (Sandbox Code Playgroud)
我必须只提取前三个元素不全为零的那些行,预期结果如下:
result = np.array([[3,0,5,0],
[8,9,5,3]])
Run Code Online (Sandbox Code Playgroud)
我试过:
res = [l for l in data if l[:3].sum() !=0]
print (res)
Run Code Online (Sandbox Code Playgroud)
它给出了结果。但是,正在寻找更好的、麻木的方法。
sum如果您的数组可以包含负数,则有点不可靠,但any始终有效:
result = data[data[:, :3].any(1)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45 次 |
| 最近记录: |