из осей в pandas или numpy?
есть массив 100 на 20, хочу сделать 50 на 20, так чтобы каждые два значения была их сумма или одно из средних
Попробуй это: import numpy as np # Создаем исходный массив 100 на 20 arr = np.random.rand(100, 20) # Указываем на сколько раз увеличиваем каждую строку scale_factor = 2 # Первый элемент размножаем полное количество раз, # второй элемент - 1 раз, третий - полное количество раз и т.д. repeats = np.concatenate((np.ones(scale_factor), np.zeros(scale_factor - 1))) repeats = np.tile(repeats, (50, 1)).flatten() # Повторяем каждый элемент в массиве arr # соответствующее количество раз arr_repeated = np.repeat(arr, repeats, axis=0) # Меняем размер массива до 50 на 20 arr_upscaled = arr_repeated.reshape(50, 20) # Вычисляем среднее значение каждой пары элементов arr_upscaled = arr_upscaled.reshape(50, 20, -1).mean(axis=2) # Отображаем результат print(arr_upscaled.shape)
Во, уже требуется работа проверяльщика результата ChatGPT! > arr_repeated = np.repeat(arr, repeats, axis=0) TypeError: Cannot cast array data from dtype('float64') to dtype('int64') according to the rule 'safe' ... > arr_repeated = np.repeat(arr, repeats.astype('int64'), axis=0) ValueError: operands could not be broadcast together with shape (100,) (150,) ...
Обсуждают сегодня