【问题标题】:Short a 2D MxM matrix to a 2D (M-1)x(M-1) matrix from an arbitrari point A[i,j]从任意点 A[i,j] 将 2D MxM 矩阵缩短为 2D (M-1)x(M-1) 矩阵
【发布时间】:2020-04-28 23:51:03
【问题描述】:

我正在使用 numpy 和 scipy 将我的 MATLAB 代码迁移到 phyton。

我正在寻找一个简单的命令来缩短 MxM 矩阵(或 2D 数组)

例如,我希望从第 3 列和第 3 行的矩阵中删除所有“0”

[[a a 0 a]
 [a a 0 a]
 [0 0 0 0]
 [a a 0 a]]

并取这个矩阵

[[a a a]
[a a a]
[a a a]]

如果可能,在 numpy 或 scipy 中仅使用一行代码。

【问题讨论】:

  • 您在 MATLAB 中使用的是哪一种线?
  • 阅读这个post也许有用,@JPS。
  • 我在MATLAB中使用的代码很简单,删除第3行是:A(3,:)=[] 然后删除第3列A(:,3)=[]跨度>
  • 谢谢Sidou,但我不想删除等于0的值,我希望剪切二维矩阵的特定行和列
  • 那是两行!这种索引删除风格适用于列表,但不适用于数组。有一个np.delete 函数可以以相同的方式应用。它甚至可以被链接到一条线上。它不能就地运行。

标签: python numpy scipy linear-algebra


【解决方案1】:

我从这篇文章中找到了答案:

How to delete columns in numpy.array

指令是numpy.delete,用于一个nxn数组删除任意“i”行(axis=0)

A=np.delete(A,i,0)

删除任何“j”列(axis=1)

A=np.delete(A,j,1)

我尝试并在 Spyder 中工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多