У меня есть 2d Numpy массива, например:Заменять части некоторых строк Numpy массива с участками других строк
[[1, 2, 3, 4, 5 ]
[6, 7, 8, 9, 10]
[11,12,13,14,15]
[16,17,18,19,20]
[21,22,23,24,25]
[26,27,28,29,30]]
Я хочу, чтобы переписать части некоторых строк с частями других строк. Например, я хочу переписать второе и третье значение 1-й строки со вторым и третьим значением 0-й строки. Строки могут быть только «донором» или «получателем», а не обоими.
Как я это установил до сих пор, у меня есть 1D-массив, обозначающий определенные строки как «доноры», например.
`donors = np.array([0,2])
и 1D-массив, обозначающий определенные строки в качестве получателей, например.
`recips = np.array([1,3])
и массив, определяющий позиции для перезаписи, например.
`positions_to_overwrite = np.array([2,3],[3,4]])
Так что я бы хотел, чтобы это произошло здесь в том, что 2-й и 3-й величины (считая от нуля) в строке 1 заменяются 2-го и 3-го ряда значений 0, а 3-й и 4-й величины строка 3 перезаписываются 3-го и 4-го значения ряда 2. Это дало бы мне:
[[1, 2, 3, 4, 5 ]
[6, 7, 3, 4, 10]
[11,12,13,14,15]
[16,17,18,14,15]
[21,22,23,24,25]
[26,27,28,29,30]]
Надежда, которая имеет смысл. Если решение включает представление информации о том, что должно быть передано из одной строки в другую другим способом, это совершенно нормально.
Спасибо! Это была «[:, None]» часть, которая отсутствовала в моих попытках. Что преобразует 1D-массив в 2D-массив с одним столбцом? –
@BenS. Добавлено несколько комментариев, чтобы помочь. – Divakar