NumPy Array Herstructureren

Arrayomvorming

Omvormen betekent het wijzigen van de vorm van de array.

De vorm van de array is het aantal elementen in elke dimensie.

Door omvormen kunnen we dimensies toevoegen of verwijderen of het aantal elementen in elke dimensie wijzigen.

Van 1-D omvormen naar 2-D

实例

Converteer de volgende 1D-array van 12 elementen naar een 2D-array.

De buitenste dimensie zal 4 arrays bevatten, elk met 3 elementen:

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)

运行实例

Van 1-D omvormen naar 3-D

实例

Converteer de volgende 1D-array van 12 elementen naar een 3D-array.

De buitenste dimensie zal 2 arrays bevatten, elk met 3 arrays, die elk 2 elementen bevatten:

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)

运行实例

Kunnen we omvormen naar elke vorm?

Ja, zolang het aantal elementen dat nodig is voor de omvorming in beide vormen gelijk is.

We kunnen een 1D-array van 8 elementen omvormen tot een 2D-array van 2 rijen met 4 elementen, maar we kunnen deze niet omvormen tot een 3x3 2D-array, omdat dit 9 elementen vereist.

实例

Probeer een 1D-array van 8 elementen te converteren naar een 2D-array met 3 elementen per dimensie (dit zal een fout veroorzaken):

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

运行实例

Geef een kopie of een view terug?

实例

Controleer of de geretourneerde array een kopie of een view is:

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 的中级至高级部分。