получить данные из маскированных данных с некоторым массивом - PullRequest
0 голосов
/ 19 октября 2018

как я могу получить данные из замаскированных данных с помощью некоторого массива, например, у меня есть такие данные:

x = np.random.normal(90,120,[100,1])
y = np.random.normal(-11,21,[100,1])

и у меня есть 2 массива для фрейма, например:

x1 = np.array([50,0,150,200,50])
y1 = np.array([10,-50,-60,0,10])

Я хочу получить файл из области 2 массивов, которые были созданы до

enter image description here

Кстати, мой полный скрипт выглядит так:

import numpy as np
import matplotlib.pyplot as plt
x = np.random.normal(90,120,[100,1])
y = np.random.normal(-11,21,[100,1])
x1 = np.array([50,0,150,200,50])
y1 = np.array([10,-50,-60,0,10])
area = (20*np.random.rand(100))**2
r = np.sqrt(x*x+y*y)
rb = np.sqrt(x1*x1+y1*y1)
area1 = np.ma.masked_where(r<rb,area)
area2 = np.ma.masked_where(r>=rb,area)

1 Ответ

0 голосов
/ 19 октября 2018

оформить заказ matplotlib.path.Path.contains_points здесь .Он делает именно то, что вы хотите.

Вот пример, использующий ваши определения x, y, x1 и y1 (вы можете настроить его так, как вам нравится):

import matplotlib.path as path
import numpy as np

x = np.random.normal(90,120,[100,1])
y = np.random.normal(-11,21,[100,1])
points = np.append(x,y,axis=1)

x1 = np.array([50,0,150,200,50])
y1 = np.array([10,-50,-60,0,10])
vertices = np.array([x1, y1]).T
polygon = path.Path(vertices)

mask = polygon.contains_points(points)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...