Инициализировать 64 на 64 числа (0,0) кортежей в Python?
Можно ли создать любую произвольную структуру данных, например, кортежи? Если да, как я могу инициализировать это без записи? (Очевидно, я не хочу выписывать массив 64 на 64)
2 ответа
Решение
По-другому:
value = np.empty((), dtype=object)
value[()] = (0, 0)
a = np.full((64, 64), value, dtype=object)
Здесь требуется некоторая хитрость, чтобы гарантировать, что numpy не будет пытаться перебрать кортеж, следовательно, начальная упаковка в массив объектов
Создать пустой массив dtype=object
:
a=np.empty((64,64), dtype=object)
затем поместите в него кортежи (или что-нибудь еще):
for y in range(64):
for x in range(64):
a[y,x] = (0,0)
Самая важная вещь на самом деле является dtype=object
, позволяя вам помещать в него любой объект Python (тем не менее, теряя скорость векторизованных операций).