одномерные формы массива (длина,) против (длина, 1) против (длина)

Когда я проверяю форму массива с помощью numpy.shape() , иногда я получаю (length,1) и иногда (length,) . Похоже, что разница – это столбец и вектор-строка … но похоже, что это ничего не меняет о самом массиве [кроме некоторых функций жалуются, когда передаю массив с формой (length,1) ].

В чем разница между этими двумя?
Почему не только форма (length) ?

3 Solutions collect form web for “одномерные формы массива (длина,) против (длина, 1) против (длина)”

Дело в том, что скажем, что вектор можно увидеть либо как

  • вектор
  • матрица с одним столбцом
  • 3-мерный массив, где 2-й и 3-й измерения имеют длину 1

Вы можете добавить размеры с помощью синтаксиса [:, np.newaxis] или уменьшить размеры с помощью np.squeeze :

 >>> xs = np.array([1, 2, 3, 4, 5]) >>> xs.shape (5,) >>> xs[:, np.newaxis].shape # a matrix with only one column (5, 1) >>> xs[np.newaxis, :].shape # a matrix with only one row (1, 5) >>> xs[:, np.newaxis, np.newaxis].shape # a 3 dimensional array (5, 1, 1) >>> np.squeeze(xs[:, np.newaxis, np.newaxis]).shape (5,) 

В Python (length,) является кортежем с одним элементом. (length) является просто скобкой вокруг числа.

В numpy массив может иметь любое количество измерений, 0, 1, 2 и т. Д. Вы спрашиваете о разнице между 1 и 2 мерными объектами. (length,1) – это 2 элемента кортежа, что дает размеры массива 2d.

Если вы привыкли работать с MATLAB, вас может смутить тот факт, что там все массивы имеют размер 2 или больше.

Массив (длина) является массивом, где каждый элемент является числом, и в массиве есть элементы длины. Массив (длина, 1) представляет собой массив, который также имеет элементы длины, но каждый элемент сам по себе представляет собой массив с одним элементом. Например, следующее использование length = 3.

 >>> import numpy as np >>> a = np.array( [[1],[2],[3]] ) >>> a.shape >>> (3, 1) >>> b = np.array( [1,2,3] ) >>> b.shape >>> (3,) 
  • Эффективное обнаружение изменений знака в python
  • Записывать несколько массивов NumPy в CSV-файл в отдельных столбцах?
  • Случайный выбор из списка с заменой
  • Использование Python numpy.newaxis
  • Возможно ли создать numpy.ndarray, который содержит комплексные целые числа?
  • Нормализовать данные в пандах
  • Многомерная нормальная плотность в Python?
  • От JPG до b64encode до cv2.imread ()
  • Python - лучший язык программирования в мире.