Numpy Reshape позволяет вам изменить один элемент массива измерений на любой элемент массива измерений, и это не влияет на исходные элементы массива. (Примечание: длина массива должна совпадать при преобразовании элементов массива)

Numpy Shape укажет правильное формирование массива элементов

Изменить форму

Основное правило для общего значения изменения формы должно соответствовать значениям изменения формы arange (10) == изменить форму (2,5) [2 * 5 = 10]
Если этот массив в многомерном, вы можете изменить его на одно измерение, используя значение -1. .

число.py

import numpy as np
print("--reshape--")
ars=np.arange(10)
print(ars.reshape(2,5))
print(ars.reshape(5,2))

результат num.py

--reshape--
[[0 1 2 3 4]
 [5 6 7 8 9]]
[[0 1]
 [2 3]
 [4 5]
 [6 7]
 [8 9]]

Здесь, в приведенном выше примере, вы можете ясно видеть, что диапазон значений 10 находится в одном измерении, и мы конвертируем его как многомерное значение [2*5] и [5*2].

число.py

brs=np.arange(1,19)
print(brs)
print("---2D--- \n\n")
print(brs.reshape(2,9))
print(brs.reshape(3,6))
print("Dimension is ",brs.reshape(3,6).ndim)
print("---3D--- \n\n")
print(brs.reshape(3,3,2))
print(brs.reshape(3,2,3))
print("Dimension is ",brs.reshape(3,2,3).ndim)

Работа num.py

результат num.py

[ 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18]
---2D--- 
[[ 1  2  3  4  5  6  7  8  9]
 [10 11 12 13 14 15 16 17 18]]
[[ 1  2  3  4  5  6]
 [ 7  8  9 10 11 12]
 [13 14 15 16 17 18]]
Dimension is 2
---3D--- 
[[[ 1  2]
  [ 3  4]
  [ 5  6]]

 [[ 7  8]
  [ 9 10]
  [11 12]]

 [[13 14]
  [15 16]
  [17 18]]]
[[[ 1  2  3]
  [ 4  5  6]]

 [[ 7  8  9]
  [10 11 12]]

 [[13 14 15]
  [16 17 18]]]
Dimension is 3

В приведенном выше примере мы преобразовали одно измерение из 18 значений (0–18) в двухмерные и трехмерные элементы.

число.py

drs=np.array([[1,2,3],[4,5,6],[7,8,9]])
print("drs",drs)
print("drs",drs.ndim,"\n\n")
print("drs1",drs.reshape(-1))
print("drs1",drs.reshape(-1).ndim)
print("drs2",drs.reshape(9,))

результат num.py

drs 
[[1 2 3]
 [4 5 6]
 [7 8 9]]
drs 2 


drs1 [1 2 3 4 5 6 7 8 9]
drs1 1
drs2 [1 2 3 4 5 6 7 8 9]

Теперь мы просто превратили многомерный элемент в одномерный элемент.

Одна вещь, которую вы должны знать, изменение формы и размера будет работать одинаково, но изменение формы не влияет на исходный элемент массива, но изменение размера повлияет на исходный элемент массива.

число.py

drs=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print("Original",drs)
# drs.reshape(2,6)
print("Reshape",drs.reshape(2,6))
print("After Reshape Original ",drs)
drs.resize(1,12)
print("After Resize Original ",drs)

результат num.py

Original 
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]
Reshape 
[[ 1  2  3  4  5  6]
 [ 7  8  9 10 11 12]]
After Reshape Original  
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]
After Resize Original  [[ 1  2  3  4  5  6  7  8  9 10 11 12]]

Форма

Он показывает поведение формы массива.

число.py

print("--shape--")
a=np.array([1,2,3,4,5,6])
print(a.shape)
b=np.array([[11,22,33],[44,55,66]])
print(b.shape)
c=np.array([[[11,22,0],[33,44,0],[55,66,0]],[[77,88,0],[99,111,0],[222,333,0]]])
print(c.shape)
d=np.array([[[1,2,3,4],[5,6,7,8],[9,10,11,12]],[[12,11,10,9],[8,7,6,5],[4,3,2,1]]])
print(d.shape)

обработка формы

результат num.py

--shape--
(6,)
(2, 3)
(2, 3, 3)
(2, 3, 4)