prop_shape
повторяется в исходном коде. Иногда это одно целое число (для скалярных величин, например, 74537000), а иногда список из двух элементов (для векторных величин, например, [74537000, 3]). Я предполагал, что это фиксированный список из двух элементов (отсюда вектор). Вот почему кортеж одного скаляра даст такую ошибку, если скаляр не float32
d-типа. Чтобы избежать этого, я сделал if statement
, где каждый раз он проверяет dtype переменной перед созданием массива:
if isinstance(prop_shape, list):
my_array = np.full(tuple(prop_shape), -1, prop_in_dtype)
else:
my_array = np.full(prop_shape, -1, prop_in_dtype)
Однако, как я сказал в своем комментарии к предложению Уоррена, я получаю MemoryError следующим образом:
Traceback (most recent call last):
File "DLA_DM.py", line 96, in <module>
gizmo.plot.Image.plot_image(settings_centroid.part, 'dark', 'mass', settings_centroid.image_kind, [0,1], settings_centroid.dimensions_select, settings_centroid.distance_max, settings_centroid.distance_bin_width_generic, distance_bin_number=settings_centroid.distance_bin_number, part_indices=part_indices, write_plot=write_plot, plot_directory=plot_directory, background_color=background_color, use_column_units=False, center_position=settings_centroid.center_position, rotation=settings_centroid.rotation, property_select={'mass.bound':[1e9,1e13]}, subsample_factor=subsample_factor, image_limits=settings_centroid.image_limits_xy, hal=settings_centroid.hal, hal_indices=settings_centroid.hal_indices, hal_position_kind=hal_position_kind, hal_radius_kind=hal_radius_kind, return_halo_info=settings_centroid.return_halo_info_value_dark)
File "/usr5/username/simulation/gizmo/gizmo_plot.py", line 825, in plot_image
settings_centroid.init()
File "/usr5/username/settings_centroid.py", line 43, in init
part=gizmo.io.Read.read_snapshots(species, snapshot_value_kind, snapshot_number, simulation_directory='.', snapshot_directory='output/', simulation_name='', properties=properties, element_indices=None, particle_subsample_factor=0, separate_dark_lowres=True, sort_dark_by_id=False, convert_float32=True, host_number=1, assign_host_coordinates=True, assign_host_principal_axes=False, assign_host_orbits=False, assign_formation_coordinates=False, assign_pointers=False, check_properties=True)
File "/usr5/username/simulation/gizmo/gizmo_io.py", line 649, in read_snapshots
element_indices, convert_float32, header)
File "/usr5/username/simulation/gizmo/gizmo_io.py", line 1171, in read_particles
part[spec_name][prop] = np.full(prop_shape, -1, prop_in_dtype)
File "/usr/local/anaconda3/lib/python3.5/site-packages/numpy/core/numeric.py", line 309, in full
a = empty(shape, dtype, order)
MemoryError