Хранение numpy.ndarrays из цикла
Я пытаюсь сохранить numpy.ndarrays, определенный как
x_c
,
y_c
, а также
z_c
для каждой итерации цикла:
for z_value in np.arange(0, 5, 1):
ms.set_current_mesh(0)
planeoffset : float = z_value
ms.compute_planar_section(planeaxis = 'Z Axis', planeoffset = planeoffset)
m = ms.current_mesh()
matrix_name = m.vertex_matrix()
x_c = matrix_name[:,0]
y_c = matrix_name[:,1]
z_c = matrix_name[:,2]
Я хотел бы иметь возможность вспомнить три массива при любом z_value, желательно со ссылкой на z_value, т.е.
x_c @ z_value = 2
или похожие.
Спасибо за любую помощь!
ps очень новичок в программировании, поэтому, пожалуйста, не торопитесь.
1 ответ
Вы должны хранить каждый массив во внешней переменной, например в словаре
x_c={}
y_c={}
z_c={}
for z_value in np.arange(0, 5, 1):
ms.set_current_mesh(0)
planeoffset = float(z_value)
ms.compute_planar_section(planeaxis = 'Z Axis', planeoffset = planeoffset)
m = ms.current_mesh()
m.compact()
print(m.vertex_number(), "vertices in Planar Section Z =", planeoffset)
matrix_name = m.vertex_matrix()
x_c[planeoffset] = matrix_name[:,0]
y_c[planeoffset] = matrix_name[:,1]
z_c[planeoffset] = matrix_name[:,2]
Пожалуйста, убедитесь, что вы звоните м. compact () перед доступом к vertex_matrix, иначе вы получите
MissingCompactnessException
ошибка. Пожалуйста, обратите внимание, что хранить что-либо в x_c[2] или x_c[2.0] - это не одно и то же, поэтому выберите, должен ли ваш индекс быть целыми числами или числами с плавающей запятой, и сохраните тот же тип (в этом примере это числа с плавающей запятой).
Позже вы можете вспомнить такие значения:
print("X Values with z=2.0")
print(x_c[2.0])