gpt4 book ai didi

python - 删除零行二维 numpy 数组

转载 作者:IT老高 更新时间:2023-10-28 22:06:38 25 4
gpt4 key购买 nike

我在 numpy 中运行 qr factorization,它返回 ndarrays 列表,即 QR:

>>> [q,r] = np.linalg.qr(np.array([1,0,0,0,1,1,1,1,1]).reshape(3,3))

R 是一个二维数组,底部有零线(甚至在我的测试集中证明了所有示例):

>>> print r
[[ 1.41421356 0.70710678 0.70710678]
[ 0. 1.22474487 1.22474487]
[ 0. 0. 0. ]]

。现在,我想将 R 分成两个矩阵 R_~:

[[ 1.41421356  0.70710678  0.70710678]
[ 0. 1.22474487 1.22474487]]

R_0:

[[ 0.          0.          0.        ]]

(提取所有零线)。它似乎接近这个解决方案:deleting rows in numpy array .

编辑:
更有趣的是:np.linalg.qr() 返回一个 n x n-矩阵。不是,如我所料:

A := n x m
Q := n x m
R := n x m

最佳答案

np.allaxis 参数一起使用:

>>> r[np.all(r == 0, axis=1)]
array([[ 0., 0., 0.]])
>>> r[~np.all(r == 0, axis=1)]
array([[-1.41421356, -0.70710678, -0.70710678],
[ 0. , -1.22474487, -1.22474487]])

关于python - 删除零行二维 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11188364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com