NumPy - Thuộc tính mảng
Trong chương này, chúng ta sẽ thảo luận về các thuộc tính mảng khác nhau của NumPy.
ndarray.shape
Thuộc tính mảng này trả về một bộ giá trị bao gồm các kích thước mảng. Nó cũng có thể được sử dụng để thay đổi kích thước mảng.
ví dụ 1
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
print a.shape
Kết quả như sau:
(2, 3)
Ví dụ 2
# this resizes the ndarray
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
a.shape = (3,2)
print a
Kết quả như sau:
[[1, 2]
[3, 4]
[5, 6]]
Ví dụ 3
NumPy cũng cung cấp một chức năng định hình lại để thay đổi kích thước một mảng.
import numpy as np
a = np.array([[1,2,3],[4,5,6]])
b = a.reshape(3,2)
print b
Kết quả như sau:
[[1, 2]
[3, 4]
[5, 6]]
ndarray.ndim
Thuộc tính mảng này trả về số thứ nguyên của mảng.
ví dụ 1
# an array of evenly spaced numbers
import numpy as np
a = np.arange(24)
print a
Kết quả như sau:
[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
Ví dụ 2
# this is one dimensional array
import numpy as np
a = np.arange(24)
a.ndim
# now reshape it
b = a.reshape(2,4,3)
print b
# b is having three dimensions
Kết quả như sau:
[[[ 0, 1, 2]
[ 3, 4, 5]
[ 6, 7, 8]
[ 9, 10, 11]]
[[12, 13, 14]
[15, 16, 17]
[18, 19, 20]
[21, 22, 23]]]
numpy.itemsize
Thuộc tính mảng này trả về độ dài của mỗi phần tử của mảng tính bằng byte.
ví dụ 1
# dtype of array is int8 (1 byte)
import numpy as np
x = np.array([1,2,3,4,5], dtype = np.int8)
print x.itemsize
Kết quả như sau:
1
Ví dụ 2
# dtype of array is now float32 (4 bytes)
import numpy as np
x = np.array([1,2,3,4,5], dtype = np.float32)
print x.itemsize
Kết quả như sau:
4
numpy.flags
Đối tượng ndarray có các thuộc tính sau. Các giá trị hiện tại của nó được trả về bởi hàm này.
Sr.No. | Thuộc tính & Mô tả |
---|---|
1 | C_CONTIGUOUS (C) Dữ liệu nằm trong một phân đoạn liền kề kiểu C duy nhất |
2 | F_CONTIGUOUS (F) Dữ liệu nằm trong một phân đoạn liền kề theo kiểu Fortran |
3 | OWNDATA (O) Mảng sở hữu bộ nhớ mà nó sử dụng hoặc mượn nó từ một đối tượng khác |
4 | WRITEABLE (W) Vùng dữ liệu có thể được ghi vào. Đặt điều này thành False sẽ khóa dữ liệu, khiến dữ liệu ở chế độ chỉ đọc |
5 | ALIGNED (A) Dữ liệu và tất cả các yếu tố được căn chỉnh phù hợp với phần cứng |
6 | UPDATEIFCOPY (U) Mảng này là bản sao của một số mảng khác. Khi mảng này được phân bổ, mảng cơ sở sẽ được cập nhật với nội dung của mảng này |
Thí dụ
Ví dụ sau đây cho thấy các giá trị hiện tại của cờ.
import numpy as np
x = np.array([1,2,3,4,5])
print x.flags
Kết quả như sau:
C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False