English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

NumPy-Array-Formänderung

Die Form des Arrays ist die Anzahl der Elemente in jeder Dimension.

Arrayform erhalten

Drucke 2-D-Array Form:

import numpy as np
arr = np.array([1, 2, 3, 4], [5, 6, 7, 8])
print(arr.shape)

Laufender Output

(2, 4)

Das obige Beispiel gibt zurück (2, 4) bedeutet, dass das Array 2 Dimensionen, wobei jede Dimension 4 Elementen.

mit dem Wert von ndmin verwenden 1,2,3,4 des Vektors 5 Dimensionen Array, und überprüfe den Wert der letzten Dimension 4:

import numpy as np
arr = np.array([1, 2, 3, 4, ndmin=5)
print(arr)
print('shape of array:', arr.shape)

Laufender Output

[[[[[1 2 3 4]]]]
shape of array : (1, 1, 1, 1, 4)
Was bedeutet die Form eines Tuples?

jeder Index gibt die Anzahl der Elemente in der entsprechenden Dimension an.
Index im obigen Beispiel 4unser Wert ist 4, daher kann gesagt werden, dass der 5 von ( 4 + 1 te Dimension hat 4 Elementen.

Arrayform ändern

Die Form des Arrays ist die Anzahl der Elemente in jeder Dimension. Durch Ändern der Arrayform können wir Dimensionen hinzufügen oder entfernen oder die Anzahl der Elemente in jeder Dimension ändern.

von 1-D umformen 2-D

Nachfolgendes Array mit 12 Elementen 1-D-Array in 2-D-Array.
die äußere Dimension wird 4 D-Arrays, wobei jedes Array 3 Elemente:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
newarr = arr.reshape(4, 3)
print(newarr)

Laufender Output

[[ 1 2 3]
 [ 4 5 6]
 [ 7 8 9]
 [10 11 12]]

von 1-D umformen 3-D

Nachfolgendes Array mit 12 Elementen 1-D-Array in 3-D-Array.
die äußere Dimension haben wird 2 D-Arrays, die 3 D-Arrays, wobei jedes Array 2 Elemente:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])
newarr = arr.reshape(2, 3, 2)
print(newarr)

Laufender Output

[[[ 1 2]
  [ 3 4]
  [ 5 6]]
 [[ 7 8]
  [ 9 10]
  [11 12]]
Ein Array kann in jede Form geändert werden?

Ja, solange die notwendigen Elemente in beiden Formen gleich sind.
können wir 8 Elemente 1D-Array umformen 2 Zeilen 2D-Array 4 Elemente erfordern würde, aber wir können sie nicht in das 3 Elemente 3 Zeilen 2D-Array, da dies 3x3 = 9 Elementen.

Versuche eine Liste mit 8 Elementen 1Elementen mit jeder Dimension 3 Elementen 2D-Array in

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(3, 3)
print(newarr)

Laufender Output

D-Array (verursacht Fehler):
  Traceback (letzte Anrufung zuerst): 5Datei "test.py", Zeile

, in

Unbekannte Dimension
Sie können eine "unbekannte" Dimension verwenden.
Das bedeutet, dass Sie für eine Dimension keine genaue Zahl in der reshape-Methode angeben müssen. -1 weitergeben

als Wert, NumPy berechnet für Sie diese Zahl. 8 Elementen 1D-Array in 2x2 Elementen 3D-Array:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(2, 2, -1)
print(newarr)

Laufender Output

[[[1 2]
  [3 4]]
 [[5 6]
  [7 8]]
Hinweis:Wir können -1 an mehr als einer Dimension weiterzugeben.

Flatten der Arrays

Das Flattening der Arrays bezieht sich darauf, mehrdimensionale Arrays in 1D-Array.
Wir können reshape verwenden(-1) verwenden.
Um dies zu erreichen, können wir 1D-Array:

import numpy as np
arr = np.array([1, 2, 3], [4, 5, 6])
newarr = arr.reshape(-1)
print(newarr)

Laufender Output

[1 2 3 4 5 6]

Es gibt viele Funktionen, die die Form der Arrays flatten, ravel ändern können, und die Elemente neu anordnen können rot90、flip、fliplr、flipud und andere. Diese Funktionen gehören zum mittleren bis hohen Niveau von numpy.