Зараз я намагаюся вивчити Numpy та Python. З огляду на такий масив:
import numpy as np
a = np.array([[1,2],[1,2]])
Чи є функція, яка повертає розміри a
(ega - це масив 2 на 2)?
size()
повертає 4, і це не дуже допомагає.
Зараз я намагаюся вивчити Numpy та Python. З огляду на такий масив:
import numpy as np
a = np.array([[1,2],[1,2]])
Чи є функція, яка повертає розміри a
(ega - це масив 2 на 2)?
size()
повертає 4, і це не дуже допомагає.
Відповіді:
shape
може бути більш точно описаний як атрибут, ніж як функція , оскільки він не викликається за допомогою синтаксису функціонального виклику.
property
сам клас, ndarray.shape
не клас, це екземпляр типу властивості.
Згідно з умовою, в Python світі ярлик для такого numpy
є np
:
In [1]: import numpy as np
In [2]: a = np.array([[1,2],[3,4]])
У Numpy розмірність , вісь / осі , форма пов'язані між собою, а іноді і подібні поняття:
У математиці / фізиці розмірність або розмірність неофіційно визначається як мінімальна кількість координат, необхідна для визначення будь-якої точки всередині простору. Але в Numpy , згідно з документом numpy , це те саме, що й осі / осі:
У Numpy розміри називаються осями. Кількість осей - ранг.
In [3]: a.ndim # num of dimensions/axes, *Mathematics definition of dimension*
Out[3]: 2
енний координат індексувати array
в Numpy. А багатовимірні масиви можуть мати один індекс на вісь.
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)
описує кількість даних (або діапазон) уздовж кожної наявної осі.
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)
Також працює, якщо вхід - це не масивний масив, а список списків
>>> a = [[1,2],[1,2]]
>>> np.shape(a)
(2,2)
Або кортеж кортежів
>>> a = ((1,2),(1,2))
>>> np.shape(a)
(2,2)
np.shape
спочатку перетворює свій аргумент у масив, якщо він не має атрибуту фігури, тому він працює у списку та корректирує приклади.
Ви можете використовувати .shape
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
для вимірювання і .shape
знати точний вимір
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
функції
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
це лише обмежена версія np.info()
. Заціни:
import numpy as np
a = np.array([[1,2],[1,2]])
np.info(a)
Вийшов
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. Те, що NumPy називає виміром, - 2, у вашому випадку (ndim
). Корисно знати звичайну термінологію NumPy: це полегшує читання документів!