Şu anda Numpy ve Python öğrenmeye çalışıyorum. Aşağıdaki dizi verildiğinde:
import numpy as np
a = np.array([[1,2],[1,2]])
Boyutlarını döndüren bir işlev var mı a
(ega 2'ye 2 dizidir)?
size()
4 döndürür ve bu çok yardımcı olmaz.
Şu anda Numpy ve Python öğrenmeye çalışıyorum. Aşağıdaki dizi verildiğinde:
import numpy as np
a = np.array([[1,2],[1,2]])
Boyutlarını döndüren bir işlev var mı a
(ega 2'ye 2 dizidir)?
size()
4 döndürür ve bu çok yardımcı olmaz.
Yanıtlar:
shape
olarak tanımlanabilir .
property
Kendisi bir sınıf olmasına rağmen , bir sınıf ndarray.shape
değil, özellik türünün bir örneğidir.
Kural olarak, Python dünyasında, kısayol numpy
şudur np
:
In [1]: import numpy as np
In [2]: a = np.array([[1,2],[3,4]])
Numpy'de boyut , eksen / eksenler , şekil ilişkilidir ve bazen de benzer kavramlardır:
Gelen Matematik / Fizik , boyut veya boyutluluk gayri bir alan içinde herhangi bir noktayı belirlemek için yeterli koordinat minimum sayısı olarak tanımlanır. Ancak Numpy'de , numpy dokümana göre , eksen / eksenlerle aynı:
Numpy'de boyutlara eksen denir. Eksen sayısı sıralanır.
In [3]: a.ndim # num of dimensions/axes, *Mathematics definition of dimension*
Out[3]: 2
Numpy'de bir indekslemek için n'inci koordinat array
. Ve çok boyutlu dizilerin eksen başına bir indeksi olabilir.
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)
her bir eksen boyunca kaç veri (veya aralık) olduğunu açıklar.
In [5]: a.shape
Out[5]: (2, 2) # both the first and second axis have 2 (columns/rows/pages/blocks/...) data
import numpy as np
>>> np.shape(a)
(2,2)
Giriş bir numpy dizisi değil, bir liste listesi ise de çalışır
>>> a = [[1,2],[1,2]]
>>> np.shape(a)
(2,2)
Veya bir demet tuples
>>> a = ((1,2),(1,2))
>>> np.shape(a)
(2,2)
np.shape
önce şekil niteliğine sahip değilse argümanını bir diziye dönüştürür, bu yüzden listede ve örneklerde çalışır.
.Shape kullanabilirsiniz
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
.ndim
Boyut için ve .shape
kesin boyutu bilmek için kullanabilirsiniz
var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]])
var.ndim
# displays 2
var.shape
# display 6, 2
.reshape
Fonksiyonu kullanarak boyutu değiştirebilirsiniz
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
a.shape
yalnızca sınırlı bir sürümüdür np.info()
. Şuna bir bak:
import numpy as np
a = np.array([[1,2],[1,2]])
np.info(a)
Dışarı
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
shape
NumPy'de "boyutlarınız" olarak adlandırılır . NumPy'nin boyutu çağırdığı şey, sizin durumunuzda (ndim
). Her zamanki NumPy terminolojisini bilmek yararlıdır: bu, belgeleri okumayı kolaylaştırır!