Я ищу express в чистом виде python, что делает функция np.kron.
Допустим, у меня есть эти списки:
v1 = [1, 0, 0, 1]
v2 = [1, 0, 0, 1]
i хотел бы определить функцию, которая будет создавать список списков путем умножения v1 на каждый элемент в v2. Таким образом, эти два списка будут давать 4 списка:
[[1 * v1[0]],[0 * v1[1]],[ * v1[3]],[1 * v1[3]]]
В настоящее время я возился с кучей вещей. но не могу заставить его работать. например, когда я запускаю этот код, я получаю матрицу 4x2:
i = [[a*b for a in eye] for b in eye2]
>>[[1, 0, 0, 1], [0, 0, 0, 0], [0, 0, 0, 0], [1, 0, 0, 1]]
, когда я конвертирую в np.array и переформатирую его, это выглядит не совсем правильно:
print(np.array(i).reshape(4,4))
[[1 0 0 1]
[0 0 0 0]
[0 0 0 0]
[1 0 0 1]]
если передается np.kron (v1, v2), это даст:
[[1 0 0 0]
[0 1 0 0]
[0 0 1 0]
[0 0 0 1]]
, что является красивой единичной матрицей 4 x 4; вот что я ищу.