numpy:从没有任何循环的2d数组中快速替换uint8值

时间:2017-07-03 09:45:42

标签: python arrays numpy multidimensional-array

我有一个uint8的二维数组,我将其称为matrix,一个名为substitute的一维数组包含256 uint8。

我的代码如下,但我需要摆脱循环:

def replaceValues(matrix, substitute) :
  rows = matrix.shape[0]
  cols = matrix.shape[1]
  return [ [ substitute[ matrix[i][j] ] for j in range(cols) ] for i in range(rows) ]

我试过numpy.vectorize,但它有点慢。

你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

这可以通过NumPy中的indexing完成:

matrixWithReplacedValues = substitute[matrix]