当前位置: 首页 > 知识库问答 >
问题:

从矩阵中删除某些元素

黄昊
2023-03-14

我有以下问题:

我有一个矩阵。现在,我想在矩阵的每一行中删除一个条目:在包含某个数字(比如4)的行中,我想删除带有该数字的条目,在其他行中,我只想删除最后一个元素。

如果我有矩阵

    matrix=np.zeros((2,2))
    matrix[0,0]=2
    matrix[1,0]=4
    matrix

这给了

2 0

4 0

删除后应该只是

2.

0

谢谢你的帮助!

共有1个答案

金子平
2023-03-14

所以,假设一行中最多只有一个4,您要做的是:

  1. 迭代所有行,如果有四个使用roll,那么它将成为最后一个元素
  2. 删除最后一列

在具有4的行中,它将删除这个4并移动它之后的剩余值,在没有4的行中,它将删除最后一个元素。

(我冒昧地尝试了一个更大的矩阵,以确保输出符合预期)

试试这个:

import numpy as np


# Actual solution
def remove_in_rows(mat, num):
    for i, row in enumerate(mat):
        if num in row.tolist():
            index = row.tolist().index(num)
            mat[i][index:] = np.roll(row[index:], -1)
    return np.delete(mat, -1, 1)


# Just some example to demonstrate it works
matrix = np.array([[10 * y + x for x in range(6)] for y in range(6)])
matrix[1, 2] = 4
matrix[3, 3] = 4
matrix[4, 0] = 4

print("BEFORE:")
print(matrix)

matrix = remove_in_rows(matrix, 4)

print("AFTER:")
print(matrix)

输出:

BEFORE:
[[ 0  1  2  3  4  5]
 [10 11  4 13 14 15]
 [20 21 22 23 24 25]
 [30 31 32  4 34 35]
 [ 4 41 42 43 44 45]
 [50 51 52 53 54 55]]
AFTER:
[[ 0  1  2  3  5]
 [10 11 13 14 15]
 [20 21 22 23 24]
 [30 31 32 34 35]
 [41 42 43 44 45]
 [50 51 52 53 54]]
 类似资料:
  • 考虑矩阵: 然后,列表: 如果badcombos矩阵中的任何颜色组合出现在列表中(即上例中的子列表[[3]]和[[4]]),则将从列表中删除,我如何根据这些条件“减少”列表。

  • 问题内容: 我正在考虑使用删除字符串中的某些字符。目前尚不清楚将要删除哪些字符(即我想删除哪些字符),但是我会假定任何字符都是有效的(例如和之类的东西,等等)。 我遇到了http://www.java-tips.org/java-se-tips/java.lang/strip-certain-characters- from-a-string.html, 但是肯定有比遍历每个字符更好的方法… 有什

  • 我想从Velocity模板语言中的数组中移除某个元素。我在查看Apache VTL文档时没有找到任何合适的方法,这就是为什么我在这里寻求帮助。我尝试了以下内容(似乎不是数组项的方法): 返回,显示很可能不作为方法存在于数组上;) SO上有一个类似的问题,对我没有帮助:velocity模板从数组中删除元素

  • 本文向大家介绍将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例,包括了将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例的使用技巧和注意事项,需要的朋友参考一下 在神经网络计算过程中,经常会遇到需要将矩阵中的某些元素取出并且单独进行计算的步骤(例如MLE,Attention等操作)。那么在 tensorflow 的 Variable 类型中如何

  • 我正在经历一个练习,需要在从文件中删除所有元音后从文件中输出文本。例如,包含文本“计算理论”的文件应输出“Thry f Cmpttn”。 我尝试构建一个函数“removeVowel元音(ifsream 我希望在控制台中输出不带元音的字符串,但程序在不输出字符串的情况下终止。

  • 问题内容: 这个问题已经在这里有了答案 : 删除零线2-D numpy数组 (3个答案) 4年前关闭。 是否有一个有效的和/或内置的函数来删除2d数组的全零行?我正在查看numpy文档,但尚未找到。 问题答案: 布尔索引可以做到这一点: