如何使用Python删除2-D numpy数组中的零线元素?

2026-06-11 05:151阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计310个文字,预计阅读时间需要2分钟。

如何使用Python删除2-D numpy数组中的零线元素?

我在numpy中执行QR分解,返回一个包含Q和R的数组:[Q, R]=np.linalg.qr(np.array([1, 0, 0, 0, 1, 1, 1, 1, 1]).reshape(3, 3))。R是一个二维数组,底部有零行(这在我的测试集中所有例子都验证了这一点)。

我在numpy中运行qr分解,它返回一个ndarrays列表,即Qand R:

>>> [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:

如何使用Python删除2-D numpy数组中的零线元素?

[[ 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.all与axis参数一起使用:

>>> 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]])

本文共计310个文字,预计阅读时间需要2分钟。

如何使用Python删除2-D numpy数组中的零线元素?

我在numpy中执行QR分解,返回一个包含Q和R的数组:[Q, R]=np.linalg.qr(np.array([1, 0, 0, 0, 1, 1, 1, 1, 1]).reshape(3, 3))。R是一个二维数组,底部有零行(这在我的测试集中所有例子都验证了这一点)。

我在numpy中运行qr分解,它返回一个ndarrays列表,即Qand R:

>>> [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:

如何使用Python删除2-D numpy数组中的零线元素?

[[ 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.all与axis参数一起使用:

>>> 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]])