Ik probeer momenteel nuxy en python te leren. Gezien de volgende array:
import numpy as np
a = np.array([[1,2],[1,2]])
Is er een functie die de afmetingen van a
(E.G.A is, is een 2 bij 2 array) retourneert?
size()
RETOURNEREN 4 EN DAT NIET ZEER HELEFT.
Antwoord 1, Autoriteit 100%
Het is .shape
:
Ndarray. Vorm
Tuple van array-afmetingen.
Dus:
>>> a.shape
(2, 2)
Antwoord 2, Autoriteit 14%
eerst:
Bij Verdrag, in Python World, de snelkoppeling voor numpy
is np
, dus:
In [1]: import numpy as np
In [2]: a = np.array([[1,2],[3,4]])
tweede:
In Numpy, Dimension , Axis / Assen , Shape zijn gerelateerde en soms soortgelijke concepten:
DIMENSIE
In Wiskunde / Physics , dimensie of dimensionaliteit wordt informeel gedefinieerd als het minimumaantal coördinaten dat nodig is om elk punt in een ruimte te specificeren. Maar in Numpy , volgens de numpy Doc , het is hetzelfde als Axis / Assen:
In numpy dimensies worden assen genoemd. Het aantal assen is rang.
In [3]: a.ndim # num of dimensions/axes, *Mathematics definition of dimension*
Out[3]: 2
assen/assen
de ndecoördinaat om een array
in Numpy te indexeren. En multidimensionale arrays kunnen één index per as hebben.
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)
vorm
beschrijft hoeveel gegevens (of het bereik) langs elke beschikbare as.
In [5]: a.shape
Out[5]: (2, 2) # both the first and second axis have 2 (columns/rows/pages/blocks/...) data
Antwoord 3, autoriteit 9%
import numpy as np
>>> np.shape(a)
(2,2)
Werkt ook als de invoer geen numpy-array is, maar een lijst met lijsten
>>> a = [[1,2],[1,2]]
>>> np.shape(a)
(2,2)
Of een tupel van tuples
>>> a = ((1,2),(1,2))
>>> np.shape(a)
(2,2)
Antwoord 4, autoriteit 3%
U kunt .shape gebruiken
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
Antwoord 5, autoriteit 3%
U kunt .ndim
gebruiken voor dimensie en .shape
om de exacte dimensie te weten
var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]])
var.ndim
# displays 2
var.shape
# display 6, 2
U kunt de dimensie wijzigen met .reshape
functie
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
Antwoord 6
De shape
Methode vereist dat a
een numpy ndarray is. Maar Numpy kan ook de vorm berekenen van iterables van pure python-objecten:
np.shape([[1,2],[1,2]])
Antwoord 7
a.shape
is slechts een beperkte versie van np.info()
. Bekijk dit:
import numpy as np
a = np.array([[1,2],[1,2]])
np.info(a)
OUT
class: ndarray
shape: (2, 2)
strides: (8, 4)
itemsize: 4
aligned: True
contiguous: True
fortran: False
data pointer: 0x27509cf0560
byteorder: little
byteswap: False
type: int32
Antwoord 8
rows = a.shape[0] # 2
cols = a.shape[1] # 2
a.shape #(2,2)
a.size # rows * cols = 4