Инициализировать 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 (тем не менее, теряя скорость векторизованных операций).

Другие вопросы по тегам