0
Я пытаюсь сегментировать вектор y
с использованием ребер в cutoffs
с использованием numpy (и только numpy). y
и g
определены как векторы столбцов, но a
возвращается как вектор строки. Запуск g += a.transpose()
генерирует ошибку соответствия формы (скопировано ниже), введя массив 100x100. Должен быть более элегантный способ сделать это. Благодарю.Назначение векторных значений сегментам в numpy
y = np.random.uniform(0,1,100)
cutoffs = np.random.uniform(0,1,3)
cutoffs.sort()
g = np.zeros(y.size)
for c in np.hstack([ cutoffs , 1. ]):
a = np.array([ y < c ])
g += a.transpose()
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
ValueError: non-broadcastable output operand with shape (100,) doesn't match the broadcast shape (100,100)
Что именно вы хотите достичь? ... относительно ошибки вам необходимо изменить код, как показано ниже ... – plonser
Спасибо за ответ. Цель состоит в том, чтобы назначить сегменты «y», затем «сопоставить» функцию каждому из этих сегментов, аналогично «tapply()» в R. – user2105469