NumPy-Array-Neuformung
Array-Umarbeitung
Umarbeitung bedeutet, die Form des Arrays zu ändern.
Die Form des Arrays ist die Anzahl der Elemente in jeder Dimension.
Durch Umarbeitung können wir Dimensionen hinzufügen oder entfernen oder die Anzahl der Elemente in jeder Dimension ändern.
Von 1-D in 2-D umwandeln
实例
Wandeln Sie die folgende 1-D-Array mit 12 Elementen in ein 2-D-Array um.
Die äußere Dimension wird 4 Arrays haben, die je 3 Elemente enthalten:
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)
Von 1-D in 3-D umwandeln
实例
Wandeln Sie die folgende 1-D-Array mit 12 Elementen in ein 3-D-Array um.
Die äußere Dimension wird 2 Arrays haben, die je 3 Arrays enthalten, die wiederum 2 Elemente beinhalten:
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)
Können wir in jede Form umwandeln?
Ja, solange die erforderlichen Elemente in beiden Formaten gleich sind.
Wir können ein 1D-Array mit 8 Elementen in ein 2D-Array mit 4 Elementen in 2 Zeilen umwandeln, aber wir können es nicht in ein 3x3-Array umwandeln, da dies 9 Elemente erfordern würde.
实例
Versuchen Sie, eine 1D-Array mit 8 Elementen in eine 2D-Array mit 3 Elementen in jeder Dimension zu konvertieren (es wird ein Fehler ausgelöst):
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(3, 3) print(newarr)
Kopie oder Ansicht zurückgeben?
实例
Überprüfen Sie, ob das zurückgegebene Array eine Kopie oder eine Ansicht ist:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) print(arr.reshape(2, 4).base)
上面的例子返回原始数组,因此它是一个视图。
未知的维
您可以使用一个“未知”维度。
这意味着您不必在 reshape 方法中为维度之一指定确切的数字。
传递 -1
作为值,NumPy 将为您计算该数字。
实例
将 8 个元素的 1D 数组转换为 2x2 元素的 3D 数组:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(2, 2, -1) print(newarr)
注释:我们不能将 -1
传递给一个以上的维度。
展平数组
展平数组(Flattening the arrays)是指将多维数组转换为 1D 数组。
我们可以使用 reshape(-1)
来做到这一点。
实例
把数组转换为 1D 数组:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) newarr = arr.reshape(-1) print(newarr)
注释:有很多功能可以更改 numpy flatten、ravel 中数组形状,还可以重新排列元素 rot90、flip、fliplr、flipud 等。这些功能属于 numpy 的中级至高级部分。