Я храню матрицу (список списков Python, а не пустую матрицу), содержащую числа в диапазоне [0; 255] - представимые также как uint8s.Тем не менее, я хотел бы построить матрицу, которая упаковывает эти числа в 32-битные.
Есть ли эффективный / хороший способ сделать это в numpy?В настоящее время я перестраиваю матрицу построчно с помощью numpy.frombuffer()
, но кажется, что для этого должен быть более удобный способ.
Текущий код:
def convert_8to32bit_matrix(mat):
ret_mat = np.zeros(shape=(mat.shape[0], int(mat.shape[1]/4)))
for i, row in enumerate(mat):
ret_mat[i] = np.frombuffer(row, dtype=np.uint32)
return ret_mat