Существует массив numpy, который может быть сформирован путем объединения массива кортежей в a для l oop, как "res" в этом коде. (Имена и содержимое переменных упрощены по сравнению с реальным кодом.)
Если вы посмотрите на это более внимательно, для длины arr_2 будет выполнено a для l oop, а массив extends () - . Получается, что скорость обработки становится чрезвычайно высокой, когда arr_2 становится длинным.
Разве нельзя было бы обрабатывать на высокой скорости, хорошо создавая массив?
# -*- coding: utf-8 -*-
import numpy as np
arr_1 = np.array([[0, 0, 1], [0, 0.5, -1], [-1, 0, -1], [0, -0.5, -1], [1, 0, -1]])
arr_2 = np.array([[0, 1, 2], [0, 1, 2]])
all_arr = []
for p in arr_2:
all_arr = [
(arr_1[0], p), (arr_1[1], p), (arr_1[2], p),
(arr_1[0], p), (arr_1[1], p), (arr_1[4], p),
(arr_1[0], p), (arr_1[2], p), (arr_1[3], p),
(arr_1[0], p), (arr_1[3], p), (arr_1[4], p),
(arr_1[1], p), (arr_1[2], p), (arr_1[4], p),
(arr_1[2], p), (arr_1[3], p), (arr_1[4], p)]
all_arr.extend(all_arr)
vtype = [('type_a', np.float32, 3), ('type_b', np.float32, 3)]
res = np.array(all_arr, dtype=vtype)
print(res)