似乎我在这里遗漏了一些非常基本的东西。 我有一个大的方阵,主要是零。我想要的是将它减少到包含具有非零条目的所有行和列的矩阵。 例如:
1 1 0 1
1 1 0 1
0 0 0 0
1 1 0 1
应该简化为:
1 1 1
1 1 1
1 1 1
有快速的方法吗?
答案 0 :(得分:1)
这样的事情怎么样:
>>> arr
array([[ 1., 1., 0., 1.],
[ 1., 1., 0., 1.],
[ 0., 0., 0., 0.],
[ 1., 1., 0., 1.]])
>>> mask = (arr==0)
arr = arr[~np.all(mask,axis=0)]
arr = arr[:,~np.all(mask,axis=1)]
>>> arr
array([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]])