#python #arrays #numpy #for-loop #indexing
Вопрос:
Извините, если я не вижу здесь никакого смысла, я изучаю python всего несколько недель.
(a) я хочу расположить все 4 выходных массива таким образом, чтобы они входили в один большой массив, а затем я могу использовать np.ix_ для размещения каждого из элементов данных этого списка в их соответствующем положении.
np.ix_ выдаст ошибку несоответствия формы, так как p_r принимает только один массив 4 на 4, в то время как я хотел, чтобы они были в одном большом массиве или списке.
Большое Вам спасибо !!
извините, мой код слишком длинный, поэтому я просто публикую образец кода здесь.
import numpy as np def transpose(): k = np.zeros((100,100)) p = np.array([[1,-1],[-1,1]]) a =np.arange(1,65) print(a) tau = np.array([[ 1, 2, 3, 4], [ 5, 6, 7, 8]]) for i in range(4): k[i:i 2,i:i 2] = p p_r = tau.T.dot(p).dot(tau) print(p_r) k[np.ix_(a,a)]= p_r print(k) return print(transpose())
Комментарии:
1.
k
представляет собой массив размером (4, 4), в то времяnp.ix_(a, a)
как он больше. Какnp.ix_(a, a)
предполагается индексироватьk
?2. да, это 4 на 4, но когда цикл запустится , он даст 4 таких массива (4 на 4). Итак, можно ли объединить эти массивы в один большой список из 64, а затем проиндексировать его ?
3. Сделайте
alist=[]
и сделайтеalist.append(k)
вместо печати.