wake-up-neo.net

Numpy Array-Abmessungen

Ich versuche gerade, Numpy und Python zu lernen. Gegeben das folgende Array:

import numpy as np
a = np.array([[1,2],[1,2]])

Gibt es eine Funktion, die die Dimensionen von a zurückgibt (z. B. ein 2 x 2-Array)?

size() gibt 4 zurück und das hilft nicht viel.

325
morgan freeman

Es ist .shape :

ndarray. shape
Tupel von Array-Dimensionen.

Somit:

_>>> a.shape
(2, 2)
_
445
Felix Kling

Zuerst:

In der Python Welt lautet die Abkürzung für numpy standardmäßig np.

In [1]: import numpy as np

In [2]: a = np.array([[1,2],[3,4]])

Zweite:

In Numpy Dimension , Achse/n , Form sind verwandte und manchmal ähnliche Konzepte:

abmessungen

In Mathematik/Physik ist Dimension oder Dimensionalität informell definiert als die minimale Anzahl von Koordinaten, die zur Angabe eines Punkts innerhalb eines Raums erforderlich sind. Aber in Numpy ist es laut numpy doc dasselbe wie axis/axis:

In Numpy werden Dimensionen Achsen genannt. Die Anzahl der Achsen ist Rang.

In [3]: a.ndim  # num of dimensions/axes, *Mathematics definition of dimension*
Out[3]: 2

achse/Achsen

die n-te Koordinate, um einen array in Numpy zu indizieren. Und mehrdimensionale Arrays können einen Index pro Achse haben.

In [4]: a[1,0]  # to index `a`, we specific 1 at the first axis and 0 at the second axis.
Out[4]: 3  # which results in 3 (locate at the row 1 and column 0, 0-based index)

gestalten

beschreibt, wie viele Daten (oder der Bereich) entlang jeder verfügbaren Achse vorhanden sind.

In [5]: a.shape
Out[5]: (2, 2)  # both the first and second axis have 2 (columns/rows/pages/blocks/...) data
56
YaOzI
import numpy as np   
>>> np.shape(a)
(2,2)

Funktioniert auch, wenn die Eingabe kein Numpy-Array, sondern eine Liste von Listen ist

>>> a = [[1,2],[1,2]]
>>> np.shape(a)
(2,2)

Oder ein Tupel Tupel

>>> a = ((1,2),(1,2))
>>> np.shape(a)
(2,2)
44
user4421975

Sie können .shape verwenden

In: a = np.array([[1,2,3],[4,5,6]])
In: a.shape
Out: (2, 3)
In: a.shape[0] # x axis
Out: 2
In: a.shape[1] # y axis
Out: 3
13
Rhuan Caetano

Sie können .ndim für Dimension und .shape verwenden, um die genaue Dimension zu ermitteln

var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]])

var.ndim
# displays 2

var.shape
# display 6, 2

Sie können die Abmessung mit der Funktion .reshape ändern

var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]]).reshape(3,4)

var.ndim
#display 2

var.shape
#display 3, 4
7
Daksh

Die shape -Methode erfordert, dass a ein Numpy-ndarray ist. Numpy kann aber auch die Form von Iterablen von reinen python Objekten berechnen:

np.shape([[1,2],[1,2]])
6
aph

Verwenden Sie das Attribut .shape des Numpy-Arrays. Verwenden Sie .shape [i], um direkt auf die einzelnen Dimensionen zuzugreifen.

Zum Beispiel, wenn Sie schreiben:

a = np.array([[11,12],[21,22],[31,32]])
print(a)
print("Shape: " + str(a.shape))
print("Shape (raws): " + str(a.shape[0]))
print("Shape (columns): " + str(a.shape[1]))

du wirst kriegen:

[[11 12]
 [21 22]
 [31 32]]
Shape: (3, 2)
Shape (raws): 3
Shape (columns): 2
0
efdummy