Tôi hiện đang cố gắng học Numpy và Python. Cho mảng sau:
import numpy as np
a = np.array([[1,2],[1,2]])
Có một hàm trả về kích thước của a
(ega là một mảng 2 x 2) không?
size()
trả về 4 và điều đó không giúp được gì nhiều.
Tôi hiện đang cố gắng học Numpy và Python. Cho mảng sau:
import numpy as np
a = np.array([[1,2],[1,2]])
Có một hàm trả về kích thước của a
(ega là một mảng 2 x 2) không?
size()
trả về 4 và điều đó không giúp được gì nhiều.
Câu trả lời:
shape
có thể được mô tả chính xác như một thuộc tính hơn là một hàm , vì nó không được gọi bằng cú pháp gọi hàm.
property
bản thân nó là một lớp, ndarray.shape
không phải là một lớp, nó là một thể hiện của loại thuộc tính.
Theo quy ước, trong thế giới Python, lối tắt cho numpy
là np
, vì vậy:
In [1]: import numpy as np
In [2]: a = np.array([[1,2],[3,4]])
Trong Numpy, kích thước , trục / trục , hình dạng có liên quan và đôi khi là các khái niệm tương tự:
Trong Toán học / Vật lý , thứ nguyên hoặc thứ nguyên được định nghĩa không chính thức là số tọa độ tối thiểu cần thiết để chỉ định bất kỳ điểm nào trong một không gian. Nhưng trong Numpy , theo tài liệu của Numpy , nó giống như trục / trục:
Trong kích thước Numpy được gọi là trục. Số lượng trục là cấp bậc.
In [3]: a.ndim # num of dimensions/axes, *Mathematics definition of dimension*
Out[3]: 2
các thứ n phối hợp để chỉ số một array
trong NumPy. Và mảng đa chiều có thể có một chỉ số trên mỗi trục.
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)
mô tả có bao nhiêu dữ liệu (hoặc phạm vi) dọc theo mỗi trục có sẵn.
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)
Cũng hoạt động nếu đầu vào không phải là một mảng numpy mà là một danh sách các danh sách
>>> a = [[1,2],[1,2]]
>>> np.shape(a)
(2,2)
Hoặc một tuple
>>> a = ((1,2),(1,2))
>>> np.shape(a)
(2,2)
np.shape
đầu tiên biến đối số của nó thành một mảng nếu nó không có thuộc tính hình dạng, đó là lý do tại sao nó hoạt động trên danh sách và các ví dụ tuple.
Bạn có thể sử dụng .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
Bạn có thể sử dụng .ndim
cho kích thước và .shape
để biết kích thước chính xác
var = np.array([[1,2,3,4,5,6], [1,2,3,4,5,6]])
var.ndim
# displays 2
var.shape
# display 6, 2
Bạn có thể thay đổi kích thước bằng .reshape
chức năng
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
chỉ là một phiên bản giới hạn của np.info()
. Kiểm tra này:
import numpy as np
a = np.array([[1,2],[1,2]])
np.info(a)
Ngoài
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
, trong NumPy. Cái mà NumPy gọi là thứ nguyên là 2, trong trường hợp của bạn (ndim
). Thật hữu ích khi biết thuật ngữ NumPy thông thường: điều này giúp việc đọc tài liệu dễ dàng hơn!