猿问

如何专门使用 NumPy 数组运算和库函数来解决数组运算而没有任何循环?

一个函数,它接受一个 NumPy 数组(任何形状和大小)和两个裁剪值,调用 range_min 和 range_max。输入中任何大于 range_max 的值都应该被裁剪为等于 range_max,任何小于 range_min 的值都应该被裁剪为等于 range_min。下一个单元格包含函数签名和 Python 文档代码,可帮助您入门。


我已经为这个问题实现了不同的代码,但不知道如何在没有循环的情况下做到这一点。


import numpy as np

def clip_array_range(list_values):

    for (i, item) in enumerate(list_values):

        if item < -10:

            list_values[i]= -10

        elif item > 10:

            list_values[i]= 10

    return list_values   


print(clip_array_range([-3, 2, 3, 5, 22, -12, -8, 2, 10, 38, 15]))

# expected result: [ -3   2   3   5  10 -10  -8   2  10  10  10]


print(clip_array_range([100, -100,50, -50]))

new = np.reshape(clip_array_range, (-1))# I have tried change 1D 

array into 2D as a output but it's not working

print(new)


# expected result:

#[[ 10 -10]

# [ 10 -10]]

此代码没有错误,但试图理解不同类型的逻辑以在没有循环的情况下执行此操作


叮当猫咪
浏览 90回答 2
2回答

森林海

def&nbsp;clip_array_range(list_values,&nbsp;min_value=-10,&nbsp;max_value=10): &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;np.maximum(min_value,&nbsp;np.minimum(list_values,&nbsp;max_value))

慕尼黑5688855

np.where(a&nbsp;<&nbsp;-10,&nbsp;-10,&nbsp;np.where(a&nbsp;>&nbsp;10,&nbsp;10,&nbsp;a))
随时随地看视频慕课网APP

相关分类

Python
我要回答