Это лучший способ добавить дополнительное измерение в массив numpy в одной строке кода?

Если k – это массив numpy произвольной формы, то k.shape = (s1, s2, s3, ..., sn) , и я хочу изменить его так, чтобы k.shape становился (s1, s2, ..., sn, 1) , это лучший способ сделать это в одной строке?

 k.reshape(*(list(k.shape) + [1]) 

2 Solutions collect form web for “Это лучший способ добавить дополнительное измерение в массив numpy в одной строке кода?”

Это проще:

 k.reshape(k.shape + (1,)) 

Но если вы хотите добавить пустое измерение в конец, вы должны использовать numpy.newaxis :

 import numpy as np k = k[..., np.newaxis] 

или

 k = k[..., None] 

(См. Документацию по разрезанию ).

Из python3.5 вы можете использовать распаковку с np.ndarray.shape внутри np.reshape :

 >>> my_array = np.array([1,2,3,4]) >>> my_array.reshape(1, *my_array.shape) array([[1, 2, 3, 4]]) >>> my_array.reshape(*my_array.shape, 1) array([[1], [2], [3], [4]]) 

my_array.reshape(1, *my_array.shape) работает и в более старых версиях.

  • Растопите верхнюю треугольную матрицу панд-кадра
  • Numpy - нарезание 2d строк или столбцов из массива
  • Изменение размера изображения на экране
  • Изменить кадр данных pandas из строк в столбцы
  • Python - лучший язык программирования в мире.