我正在使用numpy矩阵,我将其称为A,它由n行和5列组成。在numpy数组(矩阵)中删除行:如果j列中的值等于k,则删除前面的k行
假设列2中的所有值都包含正整数或零。如果A [j,2]等于k,其中k是一个大于或等于2的整数,我想从矩阵A中删除前面的k行;即矩阵A的行j,j-1,...和j-(k-1)。
注意如果[j,2] = k,前面的k行绝对等于0,所以没有'重叠'。但是这些不是在这一列中等于0的唯一元素。
有没有人有任何想法?我已经使用过numpy.delete和类似的函数,但是不能生成这个问题的解决方案。
实施例:
A = matrix([[9,9,0,9,9],
[1,2,1,9,9],
[8,8,0,2,3],
[7,7,0,7,8],
[1,2,0,3,4],
[6,6,3,6,6],
[1,2,0,1,2]])
操作之后,应该成为:
Anew = matrix([[9,9,0,9,9],
[1,2,1,9,9],
[8,8,0,2,3],
[1,2,0,1,2]])
由于 '3'(A的倒数第二行中)指3行(即,倒数第二个行+前两行必须从矩阵中删除。)
请分享您的数据与预期输出的例子。 –
对不起,现在包含的示例 –
J是用户给出的权利? –