Hướng dẫn what is a masked array python? - một con trăn mảng có mặt nạ là gì?

Cơ sở lý luận

Mảng đeo mặt nạ là các mảng có thể bị thiếu hoặc không hợp lệ. Mô-đun Numpy.MA cung cấp một sự thay thế gần như công việc cho Numpy hỗ trợ các mảng dữ liệu bằng mặt nạ.numpy.ma module provides a nearly work-alike replacement for numpy that supports data arrays with masks.

Mảng đeo mặt nạ là gì? ¶

Trong nhiều trường hợp, các bộ dữ liệu có thể không đầy đủ hoặc bị nhiễm độc bởi sự hiện diện của dữ liệu không hợp lệ. Ví dụ, một cảm biến có thể không ghi được dữ liệu hoặc ghi lại một giá trị không hợp lệ. Mô -đun Numpy.ma cung cấp một cách thuận tiện để giải quyết vấn đề này, bằng cách giới thiệu các mảng đeo mặt nạ.numpy.ma module provides a convenient way to address this issue, by introducing masked arrays.

Một mảng đeo mặt nạ là sự kết hợp của một numpy.ndarray tiêu chuẩn và mặt nạ. Mặt nạ là một trong hai danh nghĩa, chỉ ra rằng không có giá trị nào của mảng liên quan là không hợp lệ hoặc một mảng booleans xác định cho từng phần tử của mảng được liên kết cho dù giá trị có hợp lệ hay không. Khi một phần tử của mặt nạ là sai, phần tử tương ứng của mảng liên quan là hợp lệ và được cho là không được giải quyết. Khi một phần tử của mặt nạ là đúng, phần tử tương ứng của mảng liên quan được cho là bị che dấu [không hợp lệ].numpy.ndarray and a mask. A mask is either nomask, indicating that no value of the associated array is invalid, or an array of booleans that determines for each element of the associated array whether the value is valid or not. When an element of the mask is False, the corresponding element of the associated array is valid and is said to be unmasked. When an element of the mask is True, the corresponding element of the associated array is said to be masked [invalid].

Gói đảm bảo rằng các mục đeo mặt nạ không được sử dụng trong các tính toán.

Như một minh họa, hãy để xem xét các bộ dữ liệu sau:

>>> import numpy as np
>>> import numpy.ma as ma
>>> x = np.array[[1, 2, 3, -1, 5]]

Chúng tôi muốn đánh dấu mục thứ tư là không hợp lệ. Dễ nhất là tạo ra một mảng đeo mặt nạ:

>>> mx = ma.masked_array[x, mask=[0, 0, 0, 1, 0]]

Bây giờ chúng ta có thể tính toán giá trị trung bình của bộ dữ liệu, mà không cần tính đến dữ liệu không hợp lệ:

Mô -đun Numpy.manumpy.ma module¶

Tính năng chính của mô -đun numpy.ma là lớp MaskedArray, là một lớp con của numpy.ndarray. Lớp, các thuộc tính và phương thức của nó được mô tả chi tiết hơn trong phần lớp MaskedArray.numpy.ma module is the MaskedArray class, which is a subclass of numpy.ndarray. The class, its attributes and methods are described in more details in the MaskedArray class section.

Mô -đun Numpy.MA có thể được sử dụng như một bổ sung cho Numpy:numpy.ma module can be used as an addition to numpy:

>>> import numpy as np
>>> import numpy.ma as ma

Để tạo một mảng với phần tử thứ hai không hợp lệ, chúng tôi sẽ làm:

>>> y = ma.array[[1, 2, 3], mask = [0, 1, 0]]

Để tạo một mảng đeo mặt nạ trong đó tất cả các giá trị gần 1.e20 không hợp lệ, chúng tôi sẽ làm:

>>> z = masked_values[[1.0, 1.e20, 3.0, 4.0], 1.e20]

Để thảo luận đầy đủ về các phương thức tạo cho các mảng đeo mặt nạ, vui lòng xem phần Xây dựng các mảng đeo mặt nạ.

Sử dụng numpy.ma¶

Xây dựng các mảng đeo mặt nạ

Có một số cách để xây dựng một mảng đeo mặt nạ.

  • Một khả năng đầu tiên là trực tiếp gọi lớp MaskedArray.MaskedArray class.

  • Khả năng thứ hai là sử dụng hai hàm tạo mảng đeo mặt nạ, mảng và mặt nạ_array.array and masked_array.

    mảng [dữ liệu [, & nbsp; dtype, & nbsp; copy, & nbsp; order, & nbsp; mask, & nbsp; ...]]]][data[, dtype, copy, order, mask, ...]] Một lớp mảng có giá trị đeo mặt nạ có thể.
    masked_array Bí danh của MaskedArrayMaskedArray
  • Tùy chọn thứ ba là đưa ra chế độ xem của một mảng hiện có. Trong trường hợp đó, mặt nạ của chế độ xem được đặt thành Nomask nếu mảng không có trường tên hoặc một mảng boolean có cùng cấu trúc với mảng khác.nomask if the array has no named fields, or an array of boolean with the same structure as the array otherwise.

    >>> x = np.array[[1, 2, 3]]
    >>> x.view[ma.MaskedArray]
    masked_array[data = [1 2 3],
                 mask = False,
           fill_value = 999999]
    >>> x = np.array[[[1, 1.], [2, 2.]], dtype=[['a',int], ['b', float]]]
    >>> x.view[ma.MaskedArray]
    masked_array[data = [[1, 1.0] [2, 2.0]],
                 mask = [[False, False] [False, False]],
           fill_value = [999999, 1e+20],
                dtype = [['a', '

Bài Viết Liên Quan

Chủ Đề