np.array для функции в python - объект 'list' не вызывается - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь исключить некоторые значения из текущего списка, но не понимаю, в чем дело.

Я только начал изучать Jupyter с python для науки о данных.Любые предложения будут оценены.

Q Напишите функцию, которая принимает массив NumPy (любой формы и размера) и два значения отсечения, вызывают range_min и range_max.Любые значения на входе, превышающие range_max, должны быть обрезаны, чтобы быть равными range_max, а любые значения, меньшие чем range_min, должны быть обрезаны, чтобы быть равными range_min.

    def clip_array_range(array, range_min, range_max):
        if array[val] < range_min:
            return range_min
        if array[val] > range_max:
            return range_max
        return array[val] 

    a = np.array([-3, 2, 3, 5, 22, -12, -8, 2, 10, 38, 15])
    a_clipped = clip_array_range(a, -10, 10)
    print(a_clipped)
    # expected result: [ -3   2   3   5  10 -10  -8   2  10  10  10]     

    a = np.array([100, -100, 50, -50]).reshape(2,2)
    a_clipped = clip_array_range(a, -10, 10)
    print(a_clipped)
    # expected result: [[10 -10][10,-10] 2X2 array`

Ошибка

     a = np.array([-3, 2, 3, 5, 22, -12, -8, 2, 10, 38, 15])       
     a_clipped = clip_array_range(a, -10, 10)
     print(a_clipped)
     # TypeError -list object is not callable

1 Ответ

0 голосов
/ 25 января 2019

Напишите это -

def clip_array(a, min, max):
    a[a > max] = max
    a[a < min] = min
    return a

a = np.array([-3, 2, 3, 5, 22, -12, -8, 2, 10, 38, 15])
a = clip_array(a, -10, 10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...