3D массив с использованием данных из существующих списков - PullRequest
0 голосов
/ 20 февраля 2020

Я новичок в python и у меня проблемы с многомерными массивами. У меня есть список (ы) точек в 3-х измерениях (x, y, z), которые я пытаюсь использовать в marching_cubes_lewiner (). Значения координат находятся в 3 списках: x, y и z, так что любая точка будет задана как (x [i], y [i], z [i]).

Теперь, marching_cubes_lewiner ( ) принимает объем как массив 3D numpy. Как лучше всего преобразовать 3 списка в массив 3D numpy?

Я пробовал:

s=len(x)
points = np.ndarray((s,s,s),buffer=np.array([x,y,z]), dtype=float)

, но получаю следующую ошибку: буфер слишком мал для запрашиваемый массив. Любые указатели будут высоко оценены.

Редактировать: Я прошу прощения за вопрос, который не очень ясно. Координаты всех точек находятся в этом текстовом файле в формате "xyz".

Рег. вывод: я хотел бы получить массив 3D numpy, который был бы совместим с (будет входом) функцией марширующих кубов, предоставляемой здесь . Чтобы уточнить, вывод будет «объем» функции выше. Я еще раз прошу прощения за то, что формулировка этой проблемы не является последовательной.

Вот ошибка, которую я сейчас получаю:

TypeError                                 Traceback (most recent call last)
<ipython-input-80-3be08f942830> in <module>
      9 
     10 s=len(x)
---> 11 t = np.ndarray((s,s,s),buffer=np.array([x,y,z]), dtype=float)

TypeError: buffer is too small for requested array
...