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

Modification de la forme des tableaux NumPy

La forme du tableau est le nombre d'éléments dans chaque dimension.

Obtenir la forme du tableau

Imprimer 2-forme du tableau D :

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

Résultat de l'exécution

(2, 4)

l'exemple précédent retourne (2, 4) ce qui signifie que le tableau a 2 dimensions, chaque dimension a 4 éléments.

en utilisant la valeur de ndmin 1,2,3,4 la création d'un vecteur de 5 tableaux de dimensions, et vérifiez que la valeur de la dernière dimension est 4:

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

Résultat de l'exécution

[[[[[1 2 3 4]]]]
shape of array : (1, 1, 1, 1, 4)
Que représente la forme d'un tuple ?

entier à chaque index indique le nombre d'éléments possédés par la dimension correspondante.
l'index dans l'exemple précédent 4nos valeurs sont 4donc on peut dire que le 5 dimensions ( 4 + 1 ème) dimension a 4 éléments.

Modifier la forme du tableau

La forme du tableau est le nombre d'éléments dans chaque dimension. En modifiant la forme du tableau, nous pouvons ajouter ou supprimer des dimensions ou modifier le nombre d'éléments dans chaque dimension.

de 1-D en 2-D

D 12 元素 de 1-D Tableau converti en 2-Tableau D。
La dimension la plus externe aura 4 tableaux, chacun contenant 3 tableaux, chacun contenant

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)

Résultat de l'exécution

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

de 1-D en 3-D

D 12 元素 de 1-D Tableau converti en 3-Tableau D。
Transformez les éléments suivants en 2 dimensions, la dimension la plus externe aura 3 tableaux, chacun contenant 2 tableaux, chacun contenant

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)

Résultat de l'exécution

[[[ 1 2]
  [ 3 4]
  [ 5 6]]
 [[ 7 8]
  [ 9 10]
  [11 12]]
éléments :

Un tableau peut-il être modifié en n'importe quelle forme ?
Oui, tant que le nombre d'éléments nécessaires pour le redimensionnement est égal dans les deux formes. 8 éléments, mais nous ne pouvons pas le redimensionner en 1Nous pouvons transformer 2 lignes 2D tableau. 4 D tableau. 3 éléments, mais nous ne pouvons pas le redimensionner en 3 lignes 2D tableau, car cela nécessitera 3x3 = 9 éléments.

Tentez à transformer un tableau composé de 8 元素 de 1Tableau D converti en chaque dimension ayant 3 元素 de 2Tableau D(将产生错误):

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

Résultat de l'exécution

Traceback (most recent call last):
  Fichier "test.py", ligne 5, in

未知的维

您可以使用一个“未知”维度。
这意味着您不必在 reshape 方法中为维度之一指定确切的数字。
传递 -1 作为值,NumPy 将为您计算该数字。

将 8 元素 de 1D Tableau converti en 2x2 元素的 3Tableau D:

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

Résultat de l'exécution

[[[1 2]
  [3 4]]
 [[5 6]
  [7 8]]
注意:我们不能将 -1 传递给一个以上的维度。

展平数组

展平数组(Flattening the arrays)是指将多维数组转换为 1Tableau D。
我们可以使用 reshape(-1) 来做到这一点。
Convertissez le tableau en 1Tableau D:

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

Résultat de l'exécution

[1 2 3 4 5 6]

有许多功能可以更改 numpy flatten、ravel 中数组形状,还可以重新排列元素 rot90、flip、fliplr、flipud 等。这些功能属于 numpy 的中级至高级部分。