Как сгладить набор 3D данных на основе заданной оси? - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть набор данных 3D. X1 и X2 являются спорными переменными, а X3 (исходная переменная) является двоичным. Данные приведены на рисунке. Я хотел бы сгладить данные (вид локального усреднения) Точки данных 3D на оси X3. Я имею в виду, что для данного X1 и X2 переменная X3 вместо двоичного должна быть числом от 0 до 1. Например, когда X1 = 1100 и X2 = 3,5, значение X3 должно быть в диапазоне от 0 до 1. Я ценю вашу помощь.

1 Ответ

0 голосов
/ 27 апреля 2020

Ваш вопрос супер неясен. Вы хотите, чтобы третья переменная имела случайное распределение между 0 и 1, или вы хотите, чтобы 3-я переменная следовала некоторой кривой, основанной на переменных 1 и 2? В любом случае, вот пример генерации случайных данных в диапазоне от 0 до 1.

import numpy as np 

X1 = <some data>
X2 = <some data>
X3 = np.random.random(100)

РЕДАКТИРОВАТЬ:

Теперь, как я понимаю, вы хотите усреднить по повторениям. Вы можете просто l oop над вашими данными. Например,

repeats = {}
for n,(x,y) in enumerate(zip(X1,X2)):
    repeats[(x,y)] = repeats.get((x,y),[]) + [X3[n]]
repeats = {k:sum(v)/len(v) for k,v in repeats.items()}

Конечно, если вы хотите, чтобы ваш код был намного эффективнее и быстрее, вы можете использовать numpy.

...