Как выполнить выборку точки с использованием выборки LatinHyper Cube в случайном объемеPython

Программы на Python
Ответить
Anonymous
 Как выполнить выборку точки с использованием выборки LatinHyper Cube в случайном объеме

Сообщение Anonymous »

У меня есть набор данных, состоящий из координат XYZ, который можно отобразить в виде гистограммы 3D, как показано на рисунке ниже.
Изображение

Основной вопрос, который у меня возникает: как сгенерировать X точек (X — это ввод пользователя) внутри указанного объема, обеспечивая наилучшее возможное представление ?
Моим первым подходом было использование метода выборки LatinHyper Cube, но, как следует из названия, он предполагал кубическое пространство проектирования. Здесь объем может иметь любую форму.
Затем я попытался применить метод, описанный здесь: https://math.stackexchange.com/question ... nts-within -n- Dimensional-ellipsoid Я надеялся, что этот метод можно будет изменить до любой формы, а не эллипсоида. Это не так (по крайней мере, мне это не удалось).
В качестве «бонусного» вопроса: меня не устраивает метод трехмерной гистограммы, я бы предпочел «правильный» объём. Использование Griddata подразумевает кубическую основу, чего здесь нет.
РЕДАКТИРОВАТЬ:
Мне удалось отобразить свои данные в трехмерном формате. поверхность, которая подходит для моего использования, используя следующее:

Код: Выделить всё

data_2d = [
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 0],
[0, 0, 6, 8, 10, 12, 14, 16, 18, 20, 22],
[0, 0, 0, 0, 0, 12, 14, 16, 18, 20, 22],
[0, 0, 0, 0, 0, 12, 14, 16, 18, 20, 0],
[0, 0, 0, 0, 0, 0, 14, 16, 18, 0, 0],
[0, 0, 0, 0, 0, 0, 14, 16, 18, 0, 0],
[0, 0, 0, 0, 0, 0, 14, 16, 18, 0, 0],
[0, 0, 0, 0, 0, 0, 14, 16, 18, 0, 0],
]
# data_2d: - rows are Hs from 1 to 8 (8 rows)
#          - columns are Tp from 2 to 22 (10 columns)
#          - content is the wind speed from 2 to 22

data_array = np.array(data_2d)
x_data, y_data = np.meshgrid(np.linspace(2, 22, 11), np.linspace(1, 8, 8))

ax = plt.axes(projection="3d")
ax.plot_surface(x_data, y_data, data_array, cmap="viridis", edgecolor="black")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_zlabel("z")
Изображение

Изображение


Подробнее здесь: https://stackoverflow.com/questions/792 ... dom-volume
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»