Если я правильно понимаю, что вы хотите, это должно работать:
import numpy as np
a = np.array([[2,2],[3,3]])
b = np.zeros((len(a)*2,len(a)*2))
b[::2,::2]=a
Это 'вставляет' значения из вашего массива (здесь он называется a
) в каждую 2-ю строку и каждый 2-й столбец
Редактировать: надеюсь, что это дополнение поможет, основываясь на ваших последних изменениях:
x:y:z
означает, что вы начинаете с элемента x
и идете до y
(не включая * 1012)* сам), используя z
в качестве шага (например, 2
, то есть каждые 2 элемента, так что x
, x+2
, x+4
и т. д. до x+2n
, что является ближайшим к y
возможным), поэтому::z
будет означать ВСЕ элементы с шагом z
(или ::2
для каждого второго элемента, начиная с 0
)
Вы делаете это для каждого «измерения» вашего массива, поэтому для 2d выу вас будет [::z1,::z2]
для просмотра всех ваших данных, с z1
для строк и z2
для столбцов.
Если это все еще неясно, укажите, что неясно в комментарии.
Одно последнее уточнение - когда вы печатаете только :
, вы неявно сообщаете python 0:len(array)
иame относится к ::z
, что означает 0:len(array):z
.и если вы просто наберете ::
, это будет означать то же самое, что и :
(хотя я не углубился в этот конкретный пример)