Специфичные для Numpy масштабные значения массива Numpy - PullRequest
0 голосов
/ 18 сентября 2018

Я хочу масштабировать конкретные значения (например, больше 5) чисел массива с множеством с помощью умножителя (например, 2). Я знаю, что могу добиться этого с помощью цикла, но я хотел избежать циклов. Я думаю, что я могу достичь этого каким-то образом с помощью маски NumPy, но я не уверен, как это реализовать Чтобы продемонстрировать, к чему я стремлюсь, я использовал мнимую функцию scale_array.

Вот минимальный рабочий пример

import numpy as np

numbers = np.array([-3, 5, 2, -1, -15, 10])
mask = np.abs(numbers) > 5

numbers_scaled = scale_array(array=numbers, mask=mask, scale_factor=2)
print(numbers_scaled)  # np.array([-3, 5, 2, -1, -30, 20]) 

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Когда вы пишете, mask = np.abs(numbers) > 5 дает вам места, которые вы хотите масштабировать.

Простое выполнение numbers[mask] *= 2 должно помочь:)

0 голосов
/ 18 сентября 2018

Непосредственно назначить маскированные значения, умноженные на 2, исходному массиву как:

numbers = np.array([-3, 5, 2, -1, -15, 10])
mask = np.abs(numbers) > 5

numbers[mask] = numbers[mask]*2
numbers

array([ -3,   5,   2,  -1, -30,  20])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...