logo

numpy.reshape() в Python

Функцията numpy.reshape() е налична в пакета NumPy. Както подсказва името, reshape означава „промени във формата“. Функцията numpy.reshape() ни помага да получим нова форма на масив, без да променяме данните му.

Понякога трябва да променим формата на данните от широки към дълги. Така че в тази ситуация трябва да променим формата на масива с помощта на функцията reshape().

Синтаксис

 numpy.reshape(arr, new_shape, order='C') 

Параметри

Има следните параметри на функцията reshape():

1) arr: array_like

Това е ndarray. Това е изходният масив, който искаме да преоформим. Този параметър е основен и играе жизненоважна роля във функцията numpy.reshape().

ascii таблица java

2) new_shape: int или кортеж от ints

Формата, в която искаме да конвертираме нашия оригинален масив, трябва да е съвместима с оригиналния масив. Ако е цяло число, резултатът ще бъде 1-D масив с тази дължина. Едно измерение на формата може да бъде -1. Тук стойността се изчислява приблизително от дължината на масива и останалите размери.

3) ред: {'C', 'F', 'A'}, по избор

Параметърът за поръчка на тези индекси играе решаваща роля във функцията reshape(). Тези редове на индекси се използват за четене на елементите от изходния масив и поставяне на елементите в преоформения масив, като се използва този ред на индекси.

  1. Индексният ред „C“ означава четене/запис на елементите, които използват C-подобен индексен ред, където индексът на последната ос се променя най-бързо, обратно към индекса на първата ос, който се променя най-бавно.
  2. Редът на индекса „F“ означава четене/запис на елементи, които използват подобен на Fortran ред на индекси, където индексът на последната ос се променя най-бавно, а индексът на първата ос се променя най-бързо.
  3. Редът „C“ и „F“ не заема никакво количество от оформлението на паметта на базовия масив и се отнася само до реда на индексиране.
  4. Индексният ред 'A' означава четене/запис на елементите в индексен ред, подобен на Fortran, когато arr е съседен в паметта, в противен случай използвайте C-подобен ред.

Се завръща

Тази функция връща ndarray. Това е нов изглед обект, ако е възможно; в противен случай ще бъде копие. Няма гаранция за оформлението на паметта на върнатия масив.

Пример 1: C-подобно подреждане на индекси

 import numpy as np x=np.arange(12) y=np.reshape(x, (4,3)) x y 

Изход:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

В горния код

  • Импортирахме numpy с псевдоним np.
  • Създадохме масив 'a' с помощта на функцията np.arrange().
  • Декларирахме променливата 'y' и присвоихме върнатата стойност на функцията np.reshape().
  • Предадохме масива 'x' и формата във функцията.
  • Накрая се опитахме да отпечатаме стойността на arr.

В изхода масивът е представен като три реда и четири колони.

Пример 2: Еквивалент на C ravel след това C reshape

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x),(3,4)) x y 

Функцията ravel() се използва за създаване на непрекъснат сплескан масив. Връща се едномерен масив, който съдържа елементите на входа. Копие се прави само когато е необходимо.

какво е компютър

Изход:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

Пример 3: Подреждане на индекси, подобно на Fortran

 import numpy as np x=np.arange(12) y=np.reshape(x, (4, 3), order='F') x y 

Изход:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

В горния код

  • Импортирахме numpy с псевдоним np.
  • Създадохме масив 'a' с помощта на функцията np.arrange().
  • Декларирахме променливата 'y' и присвоихме върнатата стойност на функцията np.reshape().
  • Предадохме масива 'x' и формата и подобен на Fortran индексен ред във функцията.
  • Накрая се опитахме да отпечатаме стойността на arr.

В изхода масивът е представен като четири реда и три колони.

Пример 4: Подреждане на индекси, подобно на Fortran

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x, order='F'), (4, 3), order='F') x y 

Изход:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

Пример 5: Неуточнената стойност се предполага, че е 2

 import numpy as np x=np.arange(12) y=np.reshape(x, (2, -1)) x y 

В горния код

  • Импортирахме numpy с псевдоним np.
  • Създадохме масив 'a' с помощта на функцията np.arrange().
  • Декларирахме променливата 'y' и присвоихме върнатата стойност на функцията np.reshape().
  • Предадохме масива 'x' и формата (неуточнена стойност) във функцията.
  • Накрая се опитахме да отпечатаме стойността на arr.

В изхода масивът е представен като два реда и пет колони.

Изход:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]])