从numpy中的张量过滤掉零矩阵

时间:2018-07-21 18:52:45

标签: python numpy

我得到了(30, 256, 256)大小的ML算法的分割掩码张量。问题是,其中某些条目为零矩阵,因此我必须将它们过滤掉。现在,我正在使用基于np.array_equal函数的朴素的基于循环的技术来手动将其过滤掉。

是否有一种方法可以使用一些花哨的索引以NumPy的方式更有效地做到这一点?

2 个答案:

答案 0 :(得分:1)

只需遍历您的矩阵,然后使用函数count_non_zero()有效地检查矩阵是否为零矩阵。

import numpy as np

for matrix in tensor:
  if np.count_nonzero(matrix) != 0:
     #keep in your tensor
  else:
     #remove from your tensor

答案 1 :(得分:1)

如果var Question = function (question, answer, correctAnswer) { this.question = question; this.answer = answer; this.correctAnswer = correctAnswer; } var quesArray = []; quesArray.push(new Question('Is java script instresting?', ['yes', 'no', 'TBD'], 0)); quesArray.push(new Question('Who is the course teacher?', ['Mark', 'Jane', 'Jonas'], 3)); quesArray.push(new Question('What do u thing about codding? ', ['Fedup', 'Interesting', 'Okay'], 2)); function iterate(answer) { return answer.join('\n'); } function randQuestion() { var rand = Math.floor(Math.random() * 3); var ques = quesArray[rand]; console.log(ques.question + '\n' + iterate(ques.answer)); } randQuestion();是您的数组,则可以

a